rfcs
rubygems
rfcs | rubygems | |
---|---|---|
7 | 212 | |
45 | 3,551 | |
- | 0.6% | |
4.6 | 9.9 | |
5 months ago | 3 days ago | |
Ruby | ||
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rfcs
-
Ruby Shield: Shopify donates $1M to stewards of rubygems, bundler
I can give a limited answer based on my own day-to-day work. I work in Ruby Dependency Security, which is the team who are most involved in helping out with rubygems.org and RubyGems work. Our biggest effort lately has been about rolling out MFA requirements for owners of top-most-downloaded gems. What I'd like to do afterwards is focus on gem signing using sigstore, which would make it a "one click" experience for authors. We did some work on it earlier this year[0] but chose to focus on MFA as our first big push. We also aim to devote a substantial fraction of our time to chopping wood and carrying water: looking at honeybadger exception reports, etc.
In terms of the long run there's a whole bunch that can be done to continuously harden every aspect of the Ruby supply chain. One thing we've been involved in founding is the OpenSSF Securing Software Repos working group[1], which has meant that RubyGems maintainers are now talking directly with folks from PyPI, npm, Maven Central, Cargo and others. We all face shared threats (eg, dependency confusion, resurrection attacks etc), so getting together to work collectively and share ideas has been super awesome.
[0] https://github.com/rubygems/rfcs/pull/37
[1] https://github.com/ossf/wg-securing-software-repos
-
Making popular Ruby packages more secure
That’s correct. If you’re a maintainer of a very popular gem, as of 15th August you’ll no longer be able to e.g. `gem push` if you haven’t enabled MFA on your RubyGems account. You will of course still be able to log in and enable it.
More details in the RFC: https://github.com/rubygems/rfcs/blob/master/text/0007-mfa-r...
-
NPM Vulnerability Discussion on Twitter
> < 10% had useful 2FA enabled.
I expect this to change. NPM will roll out mandatory MFA for the most-downloaded packages[0] (RubyGems as well[1]). I expect this will rise to a 100% requirement at some point because Github's decision to require MFA by the end of 2023 will massively raise the waterline of folks who have the capability to MFA and experience with MFA.
[0] https://github.blog/2021-11-15-githubs-commitment-to-npm-eco...
[1] https://github.com/rubygems/rfcs/issues/35
-
Sigstore
The RFC trying to introduce sigstore for RubyGems is an interesting look at this in practice: https://github.com/rubygems/rfcs/pull/37
- RFC for Sigstore Rubygems Signing
- RFC: Proposal for new signing mechanism
- Require MFA for most-used gems [RubyGems RFC]
rubygems
-
RVM Ruby 2.6.0 — built with custom openssl version on Ubuntu 22.04
Fetching source index from https://rubygems.org/ Could not verify the SSL certificate for https://rubygems.org/quick/Marshal.4.8/nokogiri-1.13.10-x86_64-linux.gemspec.rz. There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'
-
Building a Sinatra app in Ruby
# Gemfile source 'https://rubygems.org' gem 'dotenv' gem 'json' gem 'pry' gem 'rake' gem 'sassc' gem 'sinatra' gem 'sinatra-activerecord' gem 'sinatra-contrib' gem 'sinatra-static-assets' group :development do gem 'foreman' gem 'rubocop' gem 'sqlite3', '~> 1.3', '>= 1.3.11' end group :test do gem 'rack-test' gem 'rspec', require: 'spec' end group :production do gem 'pg' end
-
How to deploy a Rails 7 app to Heroku
mkdir myapp && cd myapp echo "source 'https://rubygems.org'" > Gemfile echo "gem 'rails', '7.1.3.2'" >> Gemfile bundle install bundle exec rails new . --force --database=postgresql -j=esbuild -c=tailwind
-
Test Driving a Rails API - Part One
With Ruby installed, you can now manage your RubyGems with the gem command. Install the Rails gem or update if you already have it.
-
Google ZX – A tool for writing better scripts
source 'https://rubygems.org'
-
Building a Christmas-Themed Chatbot: My ServerlessGuru Hackathon Journey
# frozen_string_literal: true source 'https://rubygems.org' ruby '>= 3.2.2' gem 'aws-sdk-bedrockruntime'
-
Finding your way around Rails code
RubyGems Environment: - RUBYGEMS VERSION: 3.4.10 - RUBY VERSION: 3.2.2 (2023-03-30 patchlevel 53) [arm64-darwin22] - INSTALLATION DIRECTORY: /Users/michaeldaross/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0 - USER INSTALLATION DIRECTORY: /Users/michaeldaross/.gem/ruby/3.2.0 - RUBY EXECUTABLE: /Users/michaeldaross/.asdf/installs/ruby/3.2.2/bin/ruby - GIT EXECUTABLE: /usr/bin/git - EXECUTABLE DIRECTORY: /Users/michaeldaross/.asdf/installs/ruby/3.2.2/bin - SPEC CACHE DIRECTORY: /Users/michaeldaross/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /Users/michaeldaross/.asdf/installs/ruby/3.2.2/etc - RUBYGEMS PLATFORMS: - ruby - arm64-darwin-22 - GEM PATHS: - /Users/michaeldaross/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0 - /Users/michaeldaross/.gem/ruby/3.2.0 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => true - :bulk_threshold => 1000 - "gem" => "--no-document" - REMOTE SOURCES: - https://rubygems.org/ ...
-
Can,t install MySQL2 gem
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /usr/share/rvm/gems/ruby-2.7.5/gems/mysql2-0.5.5/ext/mysql2 /usr/share/rvm/rubies/ruby-2.7.5/bin/ruby -I /usr/share/rvm/rubies/ruby-2.7.5/lib/ruby/2.7.0 -r ./siteconf20231208-2396-1amnwp6.rb extconf.rb checking for rb_absint_size()... yes checking for rb_absint_singlebit_p()... yes checking for rb_gc_mark_movable()... yes checking for rb_wait_for_single_fd()... yes checking for rb_enc_interned_str() in ruby.h... no ----- Cannot find library dir(s) /home/julio/.rvm/usr/lib ----- *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/share/rvm/rubies/ruby-2.7.5/bin/$(RUBY_BASE_NAME) --with-openssl-dir --with-openssl-dir --with-openssl-include --without-openssl-include=${openssl-dir}/include --with-openssl-lib --without-openssl-lib=${openssl-dir}/lib To see why this extension failed to compile, please check the mkmf.log which can be found here: /usr/share/rvm/gems/ruby-2.7.5/extensions/x86_64-linux/2.7.0/mysql2-0.5.5/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /usr/share/rvm/gems/ruby-2.7.5/gems/mysql2-0.5.5 for inspection. Results logged to /usr/share/rvm/gems/ruby-2.7.5/extensions/x86_64-linux/2.7.0/mysql2-0.5.5/gem_make.out An error occurred while installing mysql2 (0.5.5), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.5.5' --source 'https://rubygems.org/'` succeeds before bundling.
-
Does anyone know what is causing this error?
Bundle complete! 14 Gemfile dependencies, 83 gems now installed. run bundle lock --add-platform=x86_64-linux Fetching gem metadata from https://rubygems.org/......... Resolving dependencies... Writing lockfile to C:/Users/****/Desktop/Projects/Rails/MyFirstProject/Gemfile.lock run bundle binstubs bundler rails importmap:install bin/rails aborted! Errno::ENOENT: No such file or directory - C:/Users/****/Desktop/Projects/Rails/MyFirstProject/Rakefile (Errno::ENOENT) :37:in `require' :37:in `require' bin/rails:4:in `' (See full trace by running task with --trace) rails turbo:install stimulus:install bin/rails aborted! Errno::ENOENT: No such file or directory - C:/Users/****/Desktop/Projects/Rails/MyFirstProject/Rakefile (Errno::ENOENT) :37:in `require' :37:in `require' bin/rails:4:in `' (See full trace by running task with --trace)
-
Heroku Build Failure: error:0308010C:digital envelope routines::unsupported
-----> Building on the Heroku-22 stack -----> Determining which buildpack to use for this app ! Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used. Detected buildpacks: Ruby,Node.js See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order -----> Ruby app detected -----> Installing bundler 2.3.25 -----> Removing BUNDLED WITH version in the Gemfile.lock -----> Compiling Ruby/Rails -----> Using Ruby version: ruby-3.1.2 -----> Installing dependencies using bundler 2.3.25 Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4 Fetching gem metadata from https://rubygems.org/........ Fetching rake 13.1.0 Installing rake 13.1.0 Fetching connection_pool 2.4.1 Fetching bigdecimal 3.1.4 Fetching concurrent-ruby 1.2.2 Fetching base64 0.2.0 Installing bigdecimal 3.1.4 with native extensions Installing connection_pool 2.4.1 Installing base64 0.2.0 Using ruby2_keywords 0.0.5 Fetching minitest 5.20.0 Fetching mutex_m 0.2.0 Installing minitest 5.20.0 Installing mutex_m 0.2.0 Installing concurrent-ruby 1.2.2 Fetching erubi 1.12.0 Fetching builder 3.2.4 Installing builder 3.2.4 Installing erubi 1.12.0 Fetching racc 1.7.3 Fetching crass 1.0.6 Installing racc 1.7.3 with native extensions Fetching rack 2.2.8 Installing crass 1.0.6 Fetching nio4r 2.7.0 Installing rack 2.2.8 Installing nio4r 2.7.0 with native extensions Fetching websocket-extensions 0.1.5 Installing websocket-extensions 0.1.5 Fetching zeitwerk 2.6.12 Installing zeitwerk 2.6.12 Fetching timeout 0.4.1 Installing timeout 0.4.1 Fetching marcel 1.0.2 Installing marcel 1.0.2 Fetching mini_mime 1.1.5 Installing mini_mime 1.1.5 Fetching date 3.3.4 Installing date 3.3.4 with native extensions Fetching public_suffix 5.0.4 Installing public_suffix 5.0.4 Fetching stringio 3.1.0 Installing stringio 3.1.0 with native extensions Fetching io-console 0.6.0 Installing io-console 0.6.0 with native extensions Fetching webrick 1.8.1 Installing webrick 1.8.1 Fetching thor 1.3.0 Installing thor 1.3.0 Fetching kaminari-core 1.2.2 Installing kaminari-core 1.2.2 Fetching ffi 1.16.3 Installing ffi 1.16.3 with native extensions Fetching tilt 2.3.0 Installing tilt 2.3.0 Fetching selectize-rails 0.12.6 Installing selectize-rails 0.12.6 Fetching amazing_print 1.5.0 Installing amazing_print 1.5.0 Fetching aws-eventstream 1.3.0 Installing aws-eventstream 1.3.0 Fetching aws-partitions 1.863.0 Installing aws-partitions 1.863.0 Fetching jmespath 1.6.2 Installing jmespath 1.6.2 Fetching bcrypt 3.1.20 Installing bcrypt 3.1.20 with native extensions Fetching msgpack 1.7.2 Installing msgpack 1.7.2 with native extensions Using bundler 2.3.25 Fetching content_disposition 1.0.0 Installing content_disposition 1.0.0 Fetching orm_adapter 0.5.0 Installing orm_adapter 0.5.0 Fetching mini_magick 4.12.0 Installing mini_magick 4.12.0 Fetching pg 1.5.4 Installing pg 1.5.4 with native extensions Fetching redis 4.8.1 Installing redis 4.8.1 Fetching semantic_range 3.0.0 Fetching stripe 5.55.0 Installing semantic_range 3.0.0 Fetching turbolinks-source 5.2.0 Installing stripe 5.55.0 Installing turbolinks-source 5.2.0 Fetching drb 2.2.0 Installing drb 2.2.0 Fetching i18n 1.14.1 Installing i18n 1.14.1 Fetching tzinfo 2.0.6 Fetching rack-session 1.0.2 Installing tzinfo 2.0.6 Installing rack-session 1.0.2 Fetching rack-test 2.1.0 Fetching sprockets 4.2.1 Installing rack-test 2.1.0 Fetching warden 1.2.9 Installing sprockets 4.2.1 Installing warden 1.2.9 Fetching rack-proxy 0.7.7 Installing rack-proxy 0.7.7 Fetching websocket-driver 0.7.6 Fetching net-protocol 0.2.2 Installing net-protocol 0.2.2 Installing websocket-driver 0.7.6 with native extensions Fetching nokogiri 1.15.5 (x86_64-linux) Installing nokogiri 1.15.5 (x86_64-linux) Fetching addressable 2.8.5 Installing addressable 2.8.5 Fetching psych 5.1.1.1 Installing psych 5.1.1.1 with native extensions Fetching reline 0.4.1 Installing reline 0.4.1 Fetching rackup 1.0.0 Installing rackup 1.0.0 Fetching puma 5.6.7 Installing puma 5.6.7 with native extensions Fetching aws-sigv4 1.8.0 Installing aws-sigv4 1.8.0 Fetching sidekiq 6.5.12 Installing sidekiq 6.5.12 Fetching bootsnap 1.17.0 Installing bootsnap 1.17.0 with native extensions Fetching turbolinks 5.2.1 Installing turbolinks 5.2.1 Fetching money 6.16.0 Installing money 6.16.0 Fetching activesupport 7.1.2 Installing activesupport 7.1.2 Fetching net-imap 0.4.7 Installing net-imap 0.4.7 Fetching net-pop 0.1.2 Installing net-pop 0.1.2 Fetching net-smtp 0.4.0 Installing net-smtp 0.4.0 Fetching loofah 2.22.0 Installing loofah 2.22.0 Fetching down 5.4.1 Installing down 5.4.1 Fetching sassc 2.4.0 Installing sassc 2.4.0 with native extensions Fetching ruby-vips 2.2.0 Installing ruby-vips 2.2.0 Fetching aws-sdk-core 3.190.0 Installing aws-sdk-core 3.190.0 Fetching monetize 1.12.0 Installing monetize 1.12.0 Fetching rails-dom-testing 2.2.0 Installing rails-dom-testing 2.2.0 Fetching globalid 1.2.1 Installing globalid 1.2.1 Fetching activemodel 7.1.2 Installing activemodel 7.1.2 Fetching mail 2.8.1 Installing mail 2.8.1 Fetching rails-html-sanitizer 1.6.0 Installing rails-html-sanitizer 1.6.0 Fetching shrine 3.5.0 Installing shrine 3.5.0 Fetching rdoc 6.6.0 Installing rdoc 6.6.0 Fetching image_processing 1.12.2 Installing image_processing 1.12.2 Fetching aws-sdk-kms 1.74.0 Installing aws-sdk-kms 1.74.0 Fetching activejob 7.1.2 Installing activejob 7.1.2 Fetching activerecord 7.1.2 Installing activerecord 7.1.2 Fetching actionview 7.1.2 Installing actionview 7.1.2 Fetching irb 1.10.0 Installing irb 1.10.0 Fetching aws-sdk-s3 1.141.0 Installing aws-sdk-s3 1.141.0 Fetching kaminari-activerecord 1.2.2 Installing kaminari-activerecord 1.2.2 Fetching actionpack 7.1.2 Installing actionpack 7.1.2 Fetching kaminari-actionview 1.2.2 Installing kaminari-actionview 1.2.2 Fetching jbuilder 2.11.5 Installing jbuilder 2.11.5 Fetching actioncable 7.1.2 Installing actioncable 7.1.2 Fetching activestorage 7.1.2 Installing activestorage 7.1.2 Fetching actionmailer 7.1.2 Installing actionmailer 7.1.2 Fetching railties 7.1.2 Installing railties 7.1.2 Fetching sprockets-rails 3.4.2 Installing sprockets-rails 3.4.2 Fetching kaminari 1.2.2 Installing kaminari 1.2.2 Fetching actionmailbox 7.1.2 Installing actionmailbox 7.1.2 Fetching actiontext 7.1.2 Fetching momentjs-rails 2.29.4.1 Installing actiontext 7.1.2 Installing momentjs-rails 2.29.4.1 Fetching jquery-rails 4.6.0 Installing jquery-rails 4.6.0 Fetching responders 3.1.1 Fetching money-rails 1.15.0 Installing responders 3.1.1 Fetching stimulus-rails 1.3.0 Installing money-rails 1.15.0 Installing stimulus-rails 1.3.0 Fetching webpacker 5.4.4 Fetching tailwindcss-rails 2.0.32 (x86_64-linux) Installing webpacker 5.4.4 Fetching rails 7.1.2 Installing rails 7.1.2 Fetching datetime_picker_rails 0.0.7 Installing datetime_picker_rails 0.0.7 Fetching devise 4.9.3 Installing devise 4.9.3 Installing tailwindcss-rails 2.0.32 (x86_64-linux) Fetching sassc-rails 2.1.2 Installing sassc-rails 2.1.2 Fetching administrate 0.16.0 Installing administrate 0.16.0 Fetching administrate-field-enum 0.0.9 Installing administrate-field-enum 0.0.9 Bundle complete! 40 Gemfile dependencies, 114 gems now installed. Gems in the groups 'development' and 'test' were not installed. Bundled gems are installed into `./vendor/bundle` Post-install message from devise:
What are some alternatives?
sigstore-website - Codebase for sigstore.dev
dotenv - A Ruby gem to load environment variables from `.env`.
harden-runner - Network egress filtering and runtime security for GitHub-hosted and self-hosted runners
nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
npm
Nokogiri - Nokogiri (鋸) makes it easy and painless to work with XML and HTML from Ruby.
enquirer - Stylish, intuitive and user-friendly prompts, for Node.js. Used by eslint, webpack, yarn, pm2, pnpm, RedwoodJS, FactorJS, salesforce, Cypress, Google Lighthouse, Generate, tencent cloudbase, lint-staged, gluegun, hygen, hardhat, AWS Amplify, GitHub Actions Toolkit, @airbnb/nimbus, and many others! Please follow Enquirer's author: https://github.com/jonschlinkert
verdaccio - 📦🔐 A lightweight Node.js private proxy registry
package-analysis - Open Source Package Analysis
spaCy - 💫 Industrial-strength Natural Language Processing (NLP) in Python
wg-securing-software-repos - OpenSSF Working Group on Securing Software Repositories
PrismJS - Lightweight, robust, elegant syntax highlighting.