Running a forked version of Jets


#1

Hi!

I am trying to test the pull request 103 (Lambda trigger and DLQ support for SQS extension) because I need it for a project.

To achieve this goal I followed the steps below :

  1. Fork Jets
  2. Add the sqs_queue and sqs_lambda_trigger extensions in the sqs-lambda-trigger branch
    In my cloud9 environment :
  3. git clone https://github.com/fabiensebban/jets.git
  4. git checkout sqs-lambda-trigger
  5. cd jets/ && gem build jets.gemspec
  6. gem install jets-1.6.10.gem
  7. jets -v to check if the installation went OK

Here is the error I have :

Traceback (most recent call last):
        10: from /home/ec2-user/.rvm/gems/ruby-2.5.3/bin/ruby_executable_hooks:24:in '<main>'
         9: from /home/ec2-user/.rvm/gems/ruby-2.5.3/bin/ruby_executable_hooks:24:in 'eval'
         8: from /home/ec2-user/.rvm/gems/ruby-2.5.3/bin/jets:23:in '<main>'
         7: from /home/ec2-user/.rvm/gems/ruby-2.5.3/bin/jets:23:in 'load'
         6: from /home/ec2-user/.rvm/gems/ruby-2.5.3/bundler/gems/jets-2a930de8a4de/exe/jets:13:in '<top (required)>'
         5: from /home/ec2-user/.rvm/gems/ruby-2.5.3/bundler/gems/jets-2a930de8a4de/exe/jets:13:in 'require'
         4: from /home/ec2-user/.rvm/gems/ruby-2.5.3/bundler/gems/jets-2a930de8a4de/lib/jets.rb:65:in '<top (required)>'
         3: from /home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in 'require'
         2: from /home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in 'load_dependency'
         1: from /home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in 'block in require'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in 'require': cannot load such file -- jets-gems (LoadError) 

Did I miss something to install my forked gem correctly?

Thank you for your help and for this powerful gem!


#2

RE: Running a forked version of Jets

To run a fork, can use the Gemfile.

Gemfile:

  gem "jets", git: "https://github.com/fabiensebban/jets.git", submodules: true, branch: "sqs-lambda-trigger"

This will run the fork for the project during “runtime”.

During, what I’m calling “compile” time, when you use the jets command standalone and it’s not using bundler so you can use wrapper script to ensure it’s calling a local version.

Setting up the jets project locally.

mkdir ~/environment
cd enviroment
git clone https://github.com/fabiensebban/jets.git
cd jets
git checkout sqs-lambda-trigger
git submodule init
git submodule update
bundle

Create a ~/bin/jets wrapper script that calls the local version:

mkdir ~/bin
cat << EOF > ~/bin/jets
#!/bin/bash
>&2 echo "Using local version at ~/environment/jets"
exec ~/environment/jets/exe/jets "$@"
EOF
chmod a+x ~/bin/jets

export PATH="~/bin:$PATH" # add this to your .profile if you wish

Now you can call jets -h and you’ll see Using local version at ~/environment/jets to remind yourself that you’re running a local version.

Note, when you’re running things locally, you need to remember to update and manage the local copy. IE: run bundle if you a git pull that brings in new dependencies.


RE: (Lambda trigger and DLQ support for SQS extension) because I need it for a project.

Released this SQS Events support Some other person was asking about it on https://www.reddit.com/r/ruby/comments/ant6r2/jets_introduction_series_lambda_api_gateway/efwe3q9/ And took a quick stab at it.


#3

Thank so much for your answer! It works great :slight_smile:

Now I can run my local jets gem.

This looks really nice! I will give it a try after doing my own SQS lambda trigger :wink: