Giter Site home page Giter Site logo

rbs_rails's Introduction

RBS Rails

RBS files generator for Ruby on Rails.

Installation

Add this line to your application's Gemfile:

gem 'rbs_rails', require: false

And then execute:

$ bundle install

Or install it yourself as:

$ gem install rbs_rails

Usage

Run the following command. It generates lib/tasks/rbs.rake.

$ bin/rails g rbs_rails:install

Then, the following three tasks are available.

  • rbs_rails:generate_rbs_for_models: Generate RBS files for Active Record models
  • rbs_rails:generate_rbs_for_path_helpers: Generate RBS files for path helpers
  • rbs_rails:all: Execute all tasks of RBS Rails

Install RBS for rails gem

You need to install rails gem's RBS files. I highly recommend using rbs collection.

  1. Add gem 'rails' to your Gemfile.
  2. Then execute the following commands
    $ bundle install
    $ bundle exec rbs collection init
    $ bundle exec rbs collection install

Steep integration

Put the following code as Steepfile.

target :app do
  signature 'sig'

  check 'app'
end

That's all! Now you can check your Rails app statically with steep check command.

Development

After checking out the repo, run bin/setup to install dependencies.

You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/pocke/rbs_rails.

rbs_rails's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar hanachin avatar ka2n avatar ksss avatar m11o avatar mikeastock avatar mrdev023 avatar mtsmfm avatar pocke avatar shoma07 avatar soutaro avatar tadd avatar tk0miya avatar unasuke avatar yutagoto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rbs_rails's Issues

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      language_server-protocol (>= 3.15, < 4.0) was resolved to 3.15.0.1, which depends on
        Ruby (>= 2.4.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Improve path helper type

Currently it generates path helper type with (*untyped) -> String, but it can determine the number of arguments.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    rbs (>= 1.1.1, <= 1.2.0) was resolved to 1.1.1, which depends on
      Ruby (>= 2.6)

Bundler could not find compatible versions for gem "rbs":
  In Gemfile:
    rbs (>= 1.1.1, <= 1.2.0)

    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.1.1, <= 1.2.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Bundler could not find compatible versions for gem "rbs_rails":
  In snapshot (Gemfile.lock):
    rbs_rails (= 0.8.2)

  In Gemfile:
    rbs_rails

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Latest doesn't work with steep

I'm trying to use rbs_rails and steep together in a medium rails app and I'm experiencing some issues.

steep check will exit with a code of 1 without printing anything when using rbs_rails.

I've trimmed down the issue to:

That last item is weird, I don't quite know what's happening. I noticed there was no output with the generated activerecord.rbs file present. I then commented out definitions until I found what was wrong. If I comment out ActiveRecord::TestFixtures, things start working again.

However, steep complains with:

sig/rbs_rails/sig/generated/railties.rbs:4642:2...4642:36       UnknownTypeNameError: name=ActiveRecord::TestFixtures

This is expected. If I completely remove the class Object from railties.rb, I start getting no output again.

So I don't know what's wrong with this. Is it a rbs_rails issue or a steep issue? Maybe you have some insight.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      language_server-protocol (>= 3.15, < 4.0) was resolved to 3.15.0.1, which depends on
        Ruby (>= 2.4.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Write a document to introduce RBS Rails and Steep to a real Rails application

Problem

Currently the readme is only available for documentation, but I think it is not enough to describe how to introduce RBS Rails and Steep.
For example, the readme doesn't describe how to generate RBS for controllers, dependent gems, and so on. It also doesn't describe known issues, but I have many known issues.

Solution

Write a document.

I'll write it after RBS repo. #65

Define all namespace ancestors

Currently RBS Rails generates class definitions with the not-nested style.

For example

# actual

class Foo::Bar < ApplicationRecord
end

But RBS can't determine Foo is a class or a module.
RBS Rails knows it, so it should output the class definition with the nested style.

# expected

class Foo
  class Bar < ApplicationRecord
  end
end

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.42.0, <= 0.43.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.42.0, <= 0.43.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.42.0, <= 0.43.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Which Rails versions does it support?

I need to write a support policy.

I am thinking of the following policy.

  • All minor versions are supported, but >= 6.
  • It supports the latest patch versions.
    • If 6.0.1 and 6.0.2 are available, it only supports 6.0.2.
  • I don't support Rails 5 actively, but patches are welcome.

generate_rbs_for_models errors on scopes with rest arg

Running rbs_rails:generate_rbs_for_models with the following app/models/example.rb fails:

class Example < ActiveRecord::Base
   scope :foo, ->(*bars) { where(bar: bars) }
end

The error is unexpected: (restarg :bars). I can work around the crash by changing the scope to a class method, but then it will not be included in the generated .rbs file.

Version info:

 bundle info rbs_rails
  * rbs_rails (0.7.0)
        Summary: A RBS files generator for Rails application
        Homepage: https://github.com/pocke/rbs_rails
        Path: <snip>/lib/ruby/gems/2.6.0/gems/rbs_rails-0.7.0

Copied signature files produce an error

While running steep check, I'm seeing the following error:

Unexpected error: #<RBS::GenericParameterMismatchError: sig/rbs_rails/sig/generated/activesupport.rbs:2894:0...2956:3: Generic parameters mismatch: ::Enumerable>

 /Users/jasonlor/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/rbs-0.17.0/lib/rbs/environment.rb:53:in `block in validate_type_params'

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    rbs (>= 1.1.1, <= 1.2.0) was resolved to 1.1.1, which depends on
      Ruby (>= 2.6)

Bundler could not find compatible versions for gem "rbs":
  In Gemfile:
    rbs (>= 1.1.1, <= 1.2.0)

    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.1.1, <= 1.2.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Bundler could not find compatible versions for gem "rbs_rails":
  In snapshot (Gemfile.lock):
    rbs_rails (= 0.8.2)

  In Gemfile:
    rbs_rails

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.34.0) was resolved to 0.42.0, which depends on
      language_server-protocol (~> 3.15.0.1) was resolved to 3.15.0.1, which depends on
        Ruby (>= 2.4.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.34.0) was resolved to 0.42.0, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.42.0)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    rbs (>= 1.1.1, <= 1.2.0) was resolved to 1.1.1, which depends on
      Ruby (>= 2.6)

Bundler could not find compatible versions for gem "rbs":
  In Gemfile:
    rbs (>= 1.1.1, <= 1.2.0)

    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.1.1, <= 1.2.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Bundler could not find compatible versions for gem "rbs_rails":
  In snapshot (Gemfile.lock):
    rbs_rails (= 0.8.2)

  In Gemfile:
    rbs_rails

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      language_server-protocol (>= 3.15, < 4.0) was resolved to 3.15.0.1, which depends on
        Ruby (>= 2.4.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

generate_rbs_for_models raises error Could not find table 'action_text_rich_texts'

Summary

Could not find table 'action_text_rich_texts' ActiveRecord::StatementInvalid Error happens in new simple rails project without model.

Gemfile

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '3.0.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.1.0'
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'
# Use Puma as the app server
gem 'puma', '~> 5.0'
# Use SCSS for stylesheets
gem 'sass-rails', '>= 6'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem 'webpacker', '~> 5.0'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.7'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Active Storage variant
# gem 'image_processing', '~> 1.2'

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.4', require: false

gem 'rbs_rails', require: false

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
  gem 'web-console', '>= 4.1.0'
  # Display performance information such as SQL time and flame graphs for each request in your browser.
  # Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md
  gem 'rack-mini-profiler', '~> 2.0'
  gem 'listen', '~> 3.3'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 3.26'
  gem 'selenium-webdriver'
  # Easy installation and use of web drivers to run system tests with browsers
  gem 'webdrivers'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Logs

$ bin/rake rbs_rails:generate_rbs_for_models
Running via Spring preloader in process 29758
rake aborted!
ActiveRecord::StatementInvalid: Could not find table 'action_text_rich_texts'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:346:in `table_structure'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:116:in `columns'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/connection_adapters/schema_cache.rb:104:in `block in columns'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/connection_adapters/schema_cache.rb:103:in `fetch'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/connection_adapters/schema_cache.rb:103:in `columns'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/connection_adapters/schema_cache.rb:112:in `block in columns_hash'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/connection_adapters/schema_cache.rb:111:in `fetch'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/connection_adapters/schema_cache.rb:111:in `columns_hash'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/model_schema.rb:553:in `load_schema!'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/attributes.rb:250:in `load_schema!'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/model_schema.rb:539:in `block in load_schema'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/model_schema.rb:536:in `synchronize'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/model_schema.rb:536:in `load_schema'
sandbox/.bundle/ruby/3.0.0/gems/activerecord-6.1.0/lib/active_record/model_schema.rb:397:in `columns'
sandbox/.bundle/ruby/3.0.0/gems/rbs_rails-0.6.0/lib/rbs_rails/active_record.rb:266:in `columns'
sandbox/.bundle/ruby/3.0.0/gems/rbs_rails-0.6.0/lib/rbs_rails/active_record.rb:25:in `klass_decl'
sandbox/.bundle/ruby/3.0.0/gems/rbs_rails-0.6.0/lib/rbs_rails/active_record.rb:14:in `generate'
sandbox/.bundle/ruby/3.0.0/gems/rbs_rails-0.6.0/lib/rbs_rails/active_record.rb:4:in `class_to_rbs'
sandbox/.bundle/ruby/3.0.0/gems/rbs_rails-0.6.0/lib/rbs_rails/rake_task.rb:58:in `block (2 levels) in def_generate_rbs_for_models'
sandbox/.bundle/ruby/3.0.0/gems/rbs_rails-0.6.0/lib/rbs_rails/rake_task.rb:51:in `each'
sandbox/.bundle/ruby/3.0.0/gems/rbs_rails-0.6.0/lib/rbs_rails/rake_task.rb:51:in `block in def_generate_rbs_for_models'
sandbox/.bundle/ruby/3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
sandbox/.bundle/ruby/3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
sandbox/.bundle/ruby/3.0.0/gems/activesupport-6.1.0/lib/active_support/fork_tracker.rb:10:in `block in fork'
sandbox/.bundle/ruby/3.0.0/gems/activesupport-6.1.0/lib/active_support/fork_tracker.rb:10:in `block in fork'
sandbox/.bundle/ruby/3.0.0/gems/activesupport-6.1.0/lib/active_support/fork_tracker.rb:8:in `fork'
sandbox/.bundle/ruby/3.0.0/gems/activesupport-6.1.0/lib/active_support/fork_tracker.rb:8:in `fork'
sandbox/.bundle/ruby/3.0.0/gems/activesupport-6.1.0/lib/active_support/fork_tracker.rb:26:in `fork'
sandbox/.bundle/ruby/3.0.0/gems/activesupport-6.1.0/lib/active_support/fork_tracker.rb:8:in `fork'
sandbox/.bundle/ruby/3.0.0/gems/activesupport-6.1.0/lib/active_support/fork_tracker.rb:26:in `fork'
<internal:.rbenv/versions/3.0.0/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:.rbenv/versions/3.0.0/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
-e:1:in `<main>'
Tasks: TOP => rbs_rails:generate_rbs_for_models
(See full trace by running task with --trace)

https://github.com/k-maekawa/rbs_sandbox

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      language_server-protocol (>= 3.15, < 4.0) was resolved to 3.15.0.1, which depends on
        Ruby (>= 2.4.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      language_server-protocol (>= 3.15, < 4.0) was resolved to 3.15.0.1, which depends on
        Ruby (>= 2.4.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Import type definitions with `rbs prototype runtime`

Now we have only a few type definitions.
So I think it is a good idea to import type definitions with rbs prototype runtime.

I tried generating rbs files for Active Record, and got the following rbs.
https://gist.github.com/pocke/2ed43fdbc11fa0df72d098a65127fea4

But we still have several problems to merge the rbs to this project.

  • The RBS is generated with Rails with the master branch because it needs several patches.
    • So we need to backport the patches to v6 and re-generate the RBS.
  • We already have a few types under assets/sig/ directory, so we need to merge them.
  • The generated RBS is not tested. I just generated and did nothing else. So it probably doesn't work well.
  • It only contains Active Record, but we need other libraries such as Active Support.
    • But we can introduce the generated rbs step by step.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.1) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.1)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Improve Rails.env type

ref: #30

Currently, Rails.env type is just ActiveSupport::StringInquirer, but it actually has development? method and so on.

Now user can define an overload to define these methods.

class Rails
  overload def self.env: () -> (ActiveSupport::StringInquirer & _Envs)
end

interface _Envs
  def development?: () -> bool
  # ...
end

But, probably it should be rbs_rails responsibility.

And maybe it can generate custom environments, such as staging?.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    rbs (>= 1.1.1, <= 1.2.0) was resolved to 1.1.1, which depends on
      Ruby (>= 2.6)

Bundler could not find compatible versions for gem "rbs":
  In Gemfile:
    rbs (>= 1.1.1, <= 1.2.0)

    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.1.1, <= 1.2.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Bundler could not find compatible versions for gem "rbs_rails":
  In snapshot (Gemfile.lock):
    rbs_rails (= 0.8.2)

  In Gemfile:
    rbs_rails

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.43.1, <= 0.44.0) was resolved to 0.43.1, which depends on
      Ruby (>= 2.6.0)

Bundler could not find compatible versions for gem "rbs":
  In snapshot (Gemfile.lock):
    rbs (= 1.1.1)

  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.0.0)

    steep (>= 0.43.1, <= 0.44.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In Gemfile:
    steep (>= 0.43.1, <= 0.44.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

generate_rbs_for_model doesn't create sig/*/main.rbs

Using:

    rbs (0.17.0)
    rbs_rails (0.4.1)
UnknownTypeNameError: name=ApplicationRecord
UnknownTypeNameError: name=::ActiveStorage
UnknownTypeNameError:** name=::ActsAsTaggableOn

It looks like the generate_rbs_for_model task doesn't generate the main.rbs file.
Adding the following file fixes the error This issue extends to other generated definitions.


https://github.com/pocke/rbs_rails/blob/master/test/app/sig/main.rbs

class ApplicationRecord < ActiveRecord::Base
end

sig/app/models/active_storage/main.rbs:

class ::ActiveStorage < ActiveRecord::Base
end

sig/app/models/acts_as_taggable_on/main.rbs:

class ::ActsAsTaggableOn < ActiveRecord::Base
end

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    rbs (>= 1.1.1, <= 1.2.0) was resolved to 1.1.1, which depends on
      Ruby (>= 2.6)

Bundler could not find compatible versions for gem "rbs":
  In Gemfile:
    rbs (>= 1.1.1, <= 1.2.0)

    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.1.1, <= 1.2.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Bundler could not find compatible versions for gem "rbs_rails":
  In snapshot (Gemfile.lock):
    rbs_rails (= 0.8.2)

  In Gemfile:
    rbs_rails

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

HABTM relationship breaks the generator

Because join table hasn't a primary key I'm getting the following error:

rails aborted!
NoMethodError: undefined method `type' for nil:NilClass
private def pk_type
  pk = klass.primary_key
  col = klass.columns.find {|col| col.name == pk }
  sql_type_to_class(col.type)
end

Enum typing without static analysis

Problem

Currently, rbs_rails provides enum types with static analysis, but it has a limitation that it can't generate types for enum defined in another file. For example:

# app/models/concerns/has_role.rb
module Concerns::HasRole
  enum role: {
    owner: 1,
    admin: 2,
    member: 3,
  }
end

# app/models/user.rb

class User < ApplicationRecord
  include Concerns::HasRole
end

In this case, rbs_rails generates nothing for enum, because app/models/user.rb file does not contain enum definitions and it just analyses the file.

But Active Record runtime does not have full information of enum. For example, it does not have _prefix option information. So now I choose the static analysis way.

Solution idea

If Active Record leaves more information in the runtime, we can improve the enum type generator.
It needs patches to Active Record.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.8.0)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0) was resolved to 1.1.1, which depends on
        Ruby (>= 2.6)

Bundler could not find compatible versions for gem "rbs":
  In Gemfile:
    rbs_rails was resolved to 0.8.2, which depends on
      rbs (>= 1.1.1, <= 1.2.1)

    steep (>= 0.34.0) was resolved to 0.43.1, which depends on
      rbs (~> 1.1.0)

Bundler could not find compatible versions for gem "steep":
  In snapshot (Gemfile.lock):
    steep (= 0.43.1)

  In Gemfile:
    steep (>= 0.34.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.