diff --git a/dev-ruby/railties/Manifest b/dev-ruby/railties/Manifest index c8645b46085b2..34d0defe0812a 100644 --- a/dev-ruby/railties/Manifest +++ b/dev-ruby/railties/Manifest @@ -4,3 +4,4 @@ DIST rails-7.2.3.tgz 11222967 BLAKE2B 408474d7ec82581cd7f3621bae861c23496f38b9cc DIST rails-8.0.4.tgz 11905714 BLAKE2B 3146be192bd6358018aad6b90e49b3102fcd20203cd7fb00672b75470ce3dca244bb5d2b51661ad0d9123471052b3920c05a33fe450e1109efaa368794bbfd04 SHA512 2b01a0abbe24b6f0ffcec10a3a14c50ab325a247832873363922bd3fa174ddbb26a045b6f8e6cff4fe5124d790990ecf5c256111085e5f64146d8b89734ed71c DIST rails-8.1.1.tgz 13019384 BLAKE2B 292c15166fa346a069bc1cbdd4c288722d474e53c3582f59d25ce16b7382122b9693981e6da24f64a57b7c80e07d64cbfa2769916daa8279dfe7b4924b301152 SHA512 4dcd8ef416eae2af8911801df1c0f4502cd625710df688bd8de3d4d4120fdddcdc38630982e8d4296d99a6113a52445e3d255228b17e7f6c625fd08b80e20150 DIST rails-8.1.2.tgz 13031832 BLAKE2B 85bde01384698e7556d53339435b94f884a0c385adafd5dbcda9183e4d6899f0817805426c35b464d4a98a7f91753936450c00fe06f5460e43a0439e79ef5694 SHA512 b46e6d728bdfa846eeaaf10cdda0b680760665f9f003bbad01b40ab3c4356115aadd7bd7d394297f294e3122852e9505acbe8e9cc3606cf2ef136600ae38b473 +DIST rails-8.1.3.1.tgz 13043572 BLAKE2B d2d1d0af5de2fec54e6ebb8f25db665a130f3ef7a7b38e169b7f7e047c164446fefe3eb751f5ad28dd81529d5db67ae6de9a41c5a51d7835e7454fdd747a8a18 SHA512 bf13225334706c092199e49e42f2d71dda9d33cbd57f4ff1c6069d38cd857c503cb54c7f3d4778cefa4cce9479104dbd7d893752913a28af71333daf7872d422 diff --git a/dev-ruby/railties/railties-8.1.3.1.ebuild b/dev-ruby/railties/railties-8.1.3.1.ebuild new file mode 100644 index 0000000000000..83a7862a7b173 --- /dev/null +++ b/dev-ruby/railties/railties-8.1.3.1.ebuild @@ -0,0 +1,349 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +USE_RUBY="ruby32 ruby33 ruby34 ruby40" + +RUBY_FAKEGEM_TASK_TEST="test:isolated" +RUBY_FAKEGEM_RECIPE_DOC="" +RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc" + +RUBY_FAKEGEM_GEMSPEC="railties.gemspec" + +RUBY_FAKEGEM_BINDIR="exe" +RUBY_FAKEGEM_BINWRAP="" + +inherit edo multiprocessing ruby-fakegem + +DESCRIPTION="Tools for creating, working with, and running Rails applications" +HOMEPAGE="https://github.com/rails/rails" + +SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz" +RUBY_S="rails-${PV}/${PN}" + +LICENSE="MIT" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~amd64" + +RDEPEND=">=app-eselect/eselect-rails-0.29" + +ruby_add_rdepend " + ~dev-ruby/actionpack-${PV} + ~dev-ruby/activesupport-${PV} + >=dev-ruby/irb-1.13:0 + >=dev-ruby/rackup-1.0.0 + >=dev-ruby/rake-12.2 + >=dev-ruby/thor-1.2.2:1 + >=dev-ruby/tsort-0.2 + >=dev-ruby/zeitwerk-2.6:2 +" + +ruby_add_bdepend " + test? ( + ~dev-ruby/actionmailer-${PV} + ~dev-ruby/actiontext-${PV} + ~dev-ruby/actionview-${PV} + ~dev-ruby/activestorage-${PV} + >=dev-ruby/bcrypt-ruby-3.1.11 + >=dev-ruby/bootsnap-1.4.4 + dev-ruby/bundler + >=dev-ruby/capybara-3.39 + dev-ruby/connection_pool + =dev-ruby/dalli-3.0.1:* + >=dev-ruby/image_processing-1.2:0 + >=dev-ruby/importmap-rails-1.2.3 + dev-ruby/jbuilder + >=dev-ruby/listen-3.3:3 + dev-ruby/minitest:6 + dev-ruby/minitest-mock + dev-ruby/minitest-retry + >=dev-ruby/mysql2-0.5:0.5 + >=dev-ruby/propshaft-0.1.7 + >=dev-ruby/pg-1.3:1 + >=dev-ruby/rack-cache-1.2:1.2 + >=dev-ruby/ruby-vips-2.3 + >=dev-ruby/selenium-webdriver-4.20.0 + >=dev-ruby/sprockets-rails-2.0.0 + >=dev-ruby/sqlite3-2.1 + dev-ruby/web-console + dev-ruby/webrick + >=www-servers/puma-5.0.3 + ) +" + +all_ruby_prepare() { + # Replace Gemfile with something simpler for the test run + cat <<-EOF > ../Gemfile || die + source "https://rubygems.org" + gemspec + + gem "rake" + + gem "minitest", "~> 6.0" + gem "minitest-mock" + gem "minitest-retry" + + gem "actionmailer", "${PV}" + gem "actiontext", "${PV}" + gem "actionview", "${PV}" + gem "activestorage", "${PV}" + gem "bcrypt", "~> 3.1.11", require: false + gem "bootsnap", ">= 1.4.4", require: false + gem "capybara", ">= 3.39" + gem "connection_pool", require: false + gem "dalli", ">= 3.0.1", "< 5" + gem "image_processing", "~> 1.2" + gem "importmap-rails", ">= 1.2.3" + gem "jbuilder", require: false + gem "listen", "~> 3.3", require: false + gem "mysql2", "~> 0.5" + gem "pg", "~> 1.3" + gem "propshaft", ">= 0.1.7" + gem "puma", ">= 5.0.3", require: false + gem "rack-cache", "~> 1.2" + gem "ruby-vips", "~> 2.3" + gem "selenium-webdriver", ">= 4.20.0" + gem "sprockets-rails", ">= 2.0.0", require: false + gem "sqlite3", ">= 2.1" + gem "web-console", require: false + gem "webrick", require: false + EOF + rm ../Gemfile.lock || die + + # Avoid rubocop dependency + sed -e '/"generators with apply_rubocop_autocorrect_after_generate!"/,/^ end/ s:^:#:' \ + -e '/"generators with apply_rubocop_autocorrect_after_generate! and pretend"/,/^ end/ s:^:#:' \ + -i test/application/generators_test.rb || die + sed -e '/def test_generated_files_have_no_rubocop_warnings/,/^ end/ s:^:#:' \ + -i test/generators/shared_generator_tests.rb || die + + # selenium chrome + sed -e '/def generate_application_system_test_case_file/,/^ end/ s:^:#:' \ + -e '/def test_failed_system_test_screenshot_should_be_taken_before_other_teardown/,/^ end/ s:^:#:' \ + -e '/def test_parallel_testing_when_schema_is_not_up_to_date/,/^ end/ s:^:#:' \ + -e '/def test_reset_sessions_on_failed_system_test_screenshot/,/^ end/ s:^:#:' \ + -e '/def test_system_tests_are_not_run_through_rake_test/,/^ end/ s:^:#:' \ + -e '/def test_system_tests_are_not_run_with_the_default_test_command/,/^ end/ s:^:#:' \ + -e '/def test_system_tests_are_run_through_rake_test_when_given_in_TEST/,/^ end/ s:^:#:' \ + -i test/application/test_runner_test.rb || die + rm test/application/system_test_case_test.rb || die + + # Unpackaged dependency turbo-rails + sed -e '/def test_app_update$/,/^ end/ s:^:#:' \ + -e '/def test_app_update_does_not_change_app_name_when_app_name_is_hyphenated_name/,/^ end/ s:^:#:' \ + -e '/def test_app_update_does_not_change_config_target_version/,/^ end/ s:^:#:' \ + -e '/def test_app_update_does_not_generate_action_cable_contents_when_skip_action_cable_is_given/,/^ end/ s:^:#:' \ + -e '/def test_app_update_does_not_generate_active_storage_contents_when_skip_active_record_is_given/,/^ end/ s:^:#:' \ + -e '/def test_app_update_does_not_generate_active_storage_contents_when_skip_active_storage_is_given/,/^ end/ s:^:#:' \ + -e '/def test_app_update_does_not_generate_assets_initializer_when_asset_pipeline_is_not_used/,/^ end/ s:^:#:' \ + -e '/def test_app_update_does_not_generate_bootsnap_contents_when_skip_bootsnap_is_given/,/^ end/ s:^:#:' \ + -e '/def test_app_update_does_not_remove_rack_cors_if_already_present/,/^ end/ s:^:#:' \ + -e '/def test_app_update_generates_public_folders/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_action_mailbox/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_action_text/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_active_job/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_brakeman/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_bundler_audit/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_rubocop/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_system_test/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_test/,/^ end/ s:^:#:' \ + -e '/def test_app_update_preserves_skip_thruster/,/^ end/ s:^:#:' \ + -e '/def test_app_update_supports_pretend/,/^ end/ s:^:#:' \ + -e '/def test_app_update_supports_skip/,/^ end/ s:^:#:' \ + -e '/def test_application_name_is_detected_if_it_exists_and_app_folder_renamed/,/^ end/ s:^:#:' \ + -e '/def test_ci_workflow_does_not_include_db_test_prepare_when_skip_active_record_is_given/,/^ end/ s:^:#:' \ + -i test/generators/app_generator_test.rb || die + + # Avoid breaking network sandbox + rm test/application/active_job_adapter_test.rb || die + sed -e '/def test_ensure_that_migration_tasks_work_with_mountable_option/,/^ end/ s:^:#:' \ + -e '/def test_plugin_passes_generated_test/,/^ end/ s:^:#:' \ + -i test/generators/plugin_generator_test.rb || die + + # Needs running db + sed -e '/test "db:create works when schema cache exists and database does not exist" do/,/^ end/ s:^:#:' \ + -e '/test "db:prepare creates test database if it does not exist" do/,/^ end/ s:^:#:' \ + -e '/test "db:schema:cache:dump dumps virtual columns" do/,/^ end/ s:^:#:' \ + -i test/application/rake/dbs_test.rb || die + sed -e '/"default schema generation after migration"/,/^ end/ s:^:#:' \ + -e '/"migrate with specified VERSION in different formats"/,/^ end/ s:^:#:' \ + -e '/"migration status after rollback and forward"/,/^ end/ s:^:#:' \ + -e '/"migration status after rollback and redo without timestamps"/,/^ end/ s:^:#:' \ + -e '/"migration status after rollback and redo"/,/^ end/ s:^:#:' \ + -e '/"migration status migrated file is deleted"/,/^ end/ s:^:#:' \ + -e '/"migration status without timestamps"/,/^ end/ s:^:#:' \ + -e '/"migration status"/,/^ end/ s:^:#:' \ + -e '/"migration with 0 version"/,/^ end/ s:^:#:' \ + -e '/"migration with empty version"/,/^ end/ s:^:#:' \ + -e '/"migrations with execute run when connections are established from a loaded model"/,/^ end/ s:^:#:' \ + -e '/"model and migration generator with change syntax"/,/^ end/ s:^:#:' \ + -e '/"raise error on any move when current migration does not exist"/,/^ end/ s:^:#:' \ + -e '/"raise error on any move when target migration does not exist"/,/^ end/ s:^:#:' \ + -e '/"running migrations with given scope"/,/^ end/ s:^:#:' \ + -e '/"running migrations with not timestamp head migration files"/,/^ end/ s:^:#:' \ + -e '/"version outputs current version"/,/^ end/ s:^:#:' \ + -i test/application/rake/migrations_test.rb || die + sed -e '/test "db:migrate respects timestamp ordering across databases" do/,/^ end/ s:^:#:' \ + -e '/test "db:prepare setup the database even if schema does not exist" do/,/^ end/ s:^:#:' \ + -e '/test "db:prepare setups missing database without clearing existing one" do/,/^ end/ s:^:#:' \ + -i test/application/rake/multi_dbs_test.rb || die + sed -e '/test "task is protected when previous migration was production" do/,/^ end/ s:^:#:' \ + -i test/application/rake_test.rb || die + sed -e '/"database-dependent attribute types are resolved when parallel tests are run in eager load context"/,/^ end/ s:^:#:' \ + -i test/application/test_test.rb || die + sed -e '/test_devcontainer_mariadb_mysql/,/^ end/ s:^:#:' \ + -e '/test_devcontainer_mysql/,/^ end/ s:^:#:' \ + -i test/generators/app_generator_test.rb || die + + # Unpackaged dependency solid_cable and solid_queue + sed -e '/test "generates devcontainer for default app with solid gems" do/,/^ end/ s:^:#:' \ + -i test/commands/devcontainer_test.rb || die + sed -e '/def test_app_update_does_not_generate_public_files/,/^ end/ s:^:#:' \ + -i test/generators/api_app_generator_test.rb || die + + # Unpackaged dependency kamal + sed -e '/test_kamal_deploy_yml_excludes_asset_path_for_api_app/,/^ end/ s:^:#:' \ + -i test/generators/api_app_generator_test.rb || die + + # Fails due to using system gems + sed -e '/"rails routes with expanded option"/,/^ end/ s:^:#:' \ + -i test/commands/routes_test.rb || die + + # Triggers vendored thor in bundler weirdness + sed -e '/test_bin_setup$/,/^ end/ s:^:#:' \ + -e '/test_bin_setup_output/,/^ end/ s:^:#:' \ + -i test/application/bin_setup_test.rb || die + sed -e '/"load_path is populated before eager loaded models"/,/^ end/ s:^:#:' \ + -e '/"locale files should be added to the load path"/,/^ end/ s:^:#:' \ + -i test/application/initializers/i18n_test.rb || die + sed -e '/"AC load hooks can be used with metal"/,/^ end/ s:^:#:' \ + -e '/"constants in app are autoloaded"/,/^ end/ s:^:#:' \ + -e '/"frameworks aren.t loaded during initialization"/,/^ end/ s:^:#:' \ + -e '/"models without table do not panic on scope definitions when loaded"/,/^ end/ s:^:#:' \ + -e '/test_initialize_can_be_called_at_any_time/,/^ end/ s:^:#:' \ + -i test/application/loading_test.rb || die + sed -e '/test_console_command_work_inside_engine/,/^ end/ s:^:#:' \ + -e '/test_dbconsole_command_work_inside_engine/,/^ end/ s:^:#:' \ + -e '/test_help_command_work_inside_engine/,/^ end/ s:^:#:' \ + -e '/test_runner_command_work_inside_engine/,/^ end/ s:^:#:' \ + -e '/test_server_command_broadcast_logs/,/^ end/ s:^:#:' \ + -e '/test_server_command_work_inside_engine/,/^ end/ s:^:#:' \ + -i test/engine/commands_test.rb || die + sed -e '/"automatically synchronize test schema"/,/^ end/ s:^:#:' \ + -i test/engine/test_test.rb || die + sed -e '/test_executed_only_once/,/^ end/ s:^:#:' \ + -e '/test_fail_fast/,/^ end/ s:^:#:' \ + -e '/test_mix_files_and_line_filters/,/^ end/ s:^:#:' \ + -e '/test_multiple_line_filters/,/^ end/ s:^:#:' \ + -e '/test_only_inline_failure_output/,/^ end/ s:^:#:' \ + -e '/test_output_inline_by_default/,/^ end/ s:^:#:' \ + -e '/test_raise_error_when_specified_file_does_not_exist/,/^ end/ s:^:#:' \ + -e '/test_run_default/,/^ end/ s:^:#:' \ + -e '/test_run_multiple_files/,/^ end/ s:^:#:' \ + -e '/test_run_single_file/,/^ end/ s:^:#:' \ + -e '/test_warnings_option/,/^ end/ s:^:#:' \ + -i test/generators/plugin_test_runner_test.rb || die + sed -e '/test_controller_tests_pass_by_default_inside_full_engine/,/^ end/ s:^:#:' \ + -e '/test_controller_tests_pass_by_default_inside_mountable_engine/,/^ end/ s:^:#:' \ + -i test/generators/scaffold_controller_generator_test.rb || die + sed -e '/test_scaffold_on_invoke_inside_mountable_engine/,/^ end/ s:^:#:' \ + -e '/test_scaffold_on_revoke_inside_mountable_engine/,/^ end/ s:^:#:' \ + -e '/test_scaffold_tests_pass_by_default_inside_api_full_engine/,/^ end/ s:^:#:' \ + -e '/test_scaffold_tests_pass_by_default_inside_api_mountable_engine/,/^ end/ s:^:#:' \ + -e '/test_scaffold_tests_pass_by_default_inside_full_engine/,/^ end/ s:^:#:' \ + -e '/test_scaffold_tests_pass_by_default_inside_mountable_engine/,/^ end/ s:^:#:' \ + -e '/test_scaffold_tests_pass_by_default_inside_namespaced_mountable_engine/,/^ end/ s:^:#:' \ + -i test/generators/scaffold_generator_test.rb || die + sed -e '/test_run_default/,/^ end/ s:^:#:' \ + -e '/test_rerun_snippet_is_relative_path/,/^ end/ s:^:#:' \ + -i test/generators/test_runner_in_engine_test.rb || die + sed -e '/"active_storage:install task works within engine"/,/^ end/ s:^:#:' \ + -e '/"active_storage:update task works within engine"/,/^ end/ s:^:#:' \ + -e '/"adds its fixtures path to fixture_paths"/,/^ end/ s:^:#:' \ + -e '/"adds its mailer previews to mailer preview paths"/,/^ end/ s:^:#:' \ + -e '/"adds its views to view paths"/,/^ end/ s:^:#:' \ + -e '/"can draw routes in app routes from engines"/,/^ end/ s:^:#:' \ + -e '/"copying migrations to specific database"/,/^ end/ s:^:#:' \ + -e '/"copying migrations"/,/^ end/ s:^:#:' \ + -e '/"don.t reverse default railties order"/,/^ end/ s:^:#:' \ + -e '/"isolated engine should avoid namespace in names if that.s possible"/,/^ end/ s:^:#:' \ + -e '/"loading seed data is wrapped by the executor"/,/^ end/ s:^:#:' \ + -e '/"locales can be nested"/,/^ end/ s:^:#:' \ + -e '/"mountable engine should copy migrations within engine_path"/,/^ end/ s:^:#:' \ + -e '/"puts its lib directory on load path"/,/^ end/ s:^:#:' \ + -e '/"rake environment can be called in the engine"/,/^ end/ s:^:#:' \ + -e '/"respects the order of railties when installing migrations"/,/^ end/ s:^:#:' \ + -e '/"skips nonexistent seed data"/,/^ end/ s:^:#:' \ + -e '/"take ActiveRecord table_name_prefix into consideration when defining table_name_prefix"/,/^ end/ s:^:#:' \ + -e '/"using namespace more than once on one module should not overwrite railtie_namespace method"/,/^ end/ s:^:#:' \ + -e '/"when the bootstrap hook runs, autoload paths are set"/,/^ end/ s:^:#:' \ + -i test/railties/engine_test.rb || die + sed -e '/test_controllers_are_correctly_namespaced_when_engine_is_mountable/,/^ end/ s:^:#:' \ + -e '/test_controllers_are_not_namespaced_when_engine_is_not_mountable/,/^ end/ s:^:#:' \ + -e '/test_helpers_are_correctly_namespaced_when_engine_is_mountable/,/^ end/ s:^:#:' \ + -e '/test_helpers_are_not_namespaced_when_engine_is_not_mountable/,/^ end/ s:^:#:' \ + -e '/test_models_are_correctly_namespaced_when_engine_is_mountable/,/^ end/ s:^:#:' \ + -e '/test_models_are_not_namespaced_when_engine_is_not_mountable/,/^ end/ s:^:#:' \ + -e '/test_table_name_prefix_is_correctly_namespaced_when_engine_is_mountable/,/^ end/ s:^:#:' \ + -i test/railties/generators_test.rb || die + + # Hangs + sed -e '/test "routes are loaded before inserting test routes" do/,/^ end/ s:^:#:' \ + -i test/application/integration_test_case_test.rb || die + sed -e '/test "app lazily loads routes when polymorphic_url is called" do/,/^ end/ s:^:#:' \ + -i test/engine/lazy_route_set_test.rb || die + + # FIXME: + sed -e '/test_default_transformer_with_gem_no_warning/,/^ end/ s:^:#:' \ + -i test/application/active_storage/engine_integration_test.rb || die + sed -e '/"db:prepare runs seeds once"/,/^ end/ s:^:#:' \ + -i test/application/rake/multi_dbs_test.rb || die + sed -e '/test_not_protected_when_previous_migration_was_not_production/,/^ end/ s:^:#:' \ + -i test/application/rake_test.rb || die + sed -e '/test_can_exclude_files_from_being_tested_via_rake_task_by_setting_DEFAULT_TEST_EXCLUDE_env_var/,/^ end/ s:^:#:' \ + -e '/test_parallelization_is_disabled_when_number_of_tests_is_below_threshold/,/^ end/ s:^:#:' \ + -e '/test_pass_TEST_env_on_rake_test/,/^ end/ s:^:#:' \ + -e '/test_pass_rake_options/,/^ end/ s:^:#:' \ + -e '/test_rails_db_create_all_restores_db_connection$/,/^ end/ s:^:#:' \ + -e '/test_rails_db_create_all_restores_db_connection_after_drop/,/^ end/ s:^:#:' \ + -e '/test_rake_db_and_test_tasks_parses_args_correctly/,/^ end/ s:^:#:' \ + -e '/test_rake_passes_TESTOPTS_to_minitest/,/^ end/ s:^:#:' \ + -e '/test_rake_passes_multiple_TESTOPTS_to_minitest/,/^ end/ s:^:#:' \ + -e '/test_rake_runs_multiple_test_tasks/,/^ end/ s:^:#:' \ + -e '/test_rake_runs_tests_before_other_tasks_when_specified/,/^ end/ s:^:#:' \ + -e '/test_reset_sessions_before_rollback_on_system_tests/,/^ end/ s:^:#:' \ + -i test/application/test_runner_test.rb || die + sed -e '/test "when passing --trace it invokes default" do/,/^ end/ s:^:#:'\ + -i test/command/help_integration_test.rb || die + sed -e '/test_app_update_silence_deprecate_message/,/^ end/ s:^:#:' \ + -i test/generators/app_generator_test.rb || die +} + +each_ruby_test() { + # https://github.com/rails/rails/blob/main/guides/source/testing.md#parallel-testing + local -x PARALLEL_WORKERS="$(get_makeopts_jobs)" + + local -x BUNDLE_GEMFILE="../Gemfile" + local -x MT_NO_PLUGINS=true + # Do not include --disable=did_you_mean, its expected by some tests + edo ${RUBY} -S bundle exec ${RUBY} -S rake ${RUBY_FAKEGEM_TASK_TEST} || die +} + +all_ruby_install() { + all_fakegem_install + + ruby_fakegem_binwrapper rails rails-${PV} +} + +pkg_postinst() { + elog "To select between slots of rails, use:" + elog "\teselect rails" + + eselect rails update +} + +pkg_postrm() { + eselect rails update +}