rabbit-slide-znz-update-rails-2023-11 2023.11.27.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 68ae1ed723a91228fc26419575d7c1cce502ae312021dc691df36596b28fa6bb
4
+ data.tar.gz: b5120090094818b223abad437778cd4b802db94000f4e82d9947fa9c483d5c5e
5
+ SHA512:
6
+ metadata.gz: d0663981dc93a7f474a5fbbfd4f93e7f25851b19c498772b8142b8555dc12f0f4927c2c1bd3edf3a7e245bbd8fbdfc4647e9ac87592e0374057d553eb478850e
7
+ data.tar.gz: fe8633c32370258fdcddb25a97e52e04164ae743538a1d8e12614294ac689fcef8446dec34a8365e4026f2571c20c2b749f46d286f0f87e538e55e8132d727d9
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 1920,1080
2
+ update-rails-2023-11.md
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # 小規模個人アプリをRails 7.xにバージョンアップした話
2
+
3
+ [【出張版】Kyoto.rb Meetup 【大阪だよ】](https://kyotorb.connpass.com/event/296972/)のLT大会での発表資料です。
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide-znz-update-rails-2023-11
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-znz-update-rails-2023-11.gem
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: update-rails-2023-11
3
+ base_name: update-rails-2023-11
4
+ tags:
5
+ - ruby
6
+ - rails
7
+ presentation_date: '2023-11-27'
8
+ presentation_start_time:
9
+ presentation_end_time:
10
+ version: 2023.11.27.0
11
+ licenses: []
12
+ slideshare_id: rails-7x
13
+ speaker_deck_id: ruby-rihuarensumaniyuarugai-shan-ji-hua-2022-jin-bu-bao-gao
14
+ vimeo_id:
15
+ youtube_id:
16
+ width: 1920
17
+ height: 1080
18
+ source_code_uri:
19
+ author:
20
+ markup_language: :markdown
21
+ name: Kazuhiro NISHIYAMA
22
+ email: zn@mbf.nifty.com
23
+ rubygems_user: znz
24
+ slideshare_user: znzjp
25
+ speaker_deck_user: znz
@@ -0,0 +1,129 @@
1
+ # 小規模個人アプリをRails 7.xにバージョンアップした話
2
+
3
+ author
4
+ : Kazuhiro NISHIYAMA
5
+
6
+ content-source
7
+ : Kyoto.rb Meetup
8
+
9
+ date
10
+ : 2023-11-27
11
+
12
+ allotted-time
13
+ : 9m
14
+
15
+ theme
16
+ : lightning-simple
17
+
18
+ # self.introduction
19
+
20
+ - 西山 和広
21
+ - Ruby のコミッター
22
+ - github など: `@znz`
23
+ - 株式会社Ruby開発 www.ruby-dev.jp
24
+
25
+ # 対象
26
+
27
+ - 個人メモ用アプリ <https://github.com/znz/memo-app-r>
28
+ - scaffold をちょっと改造した程度の機能のみ
29
+ - ログイン、検索
30
+ - 位置情報 (これが欲しかったので自作)
31
+ - (自分専用なので)メモ本文は生HTMLが書ける
32
+ - Dokku にデプロイ
33
+
34
+ # 更新バージョン
35
+
36
+ - Rail 6.1.7.6 → 7.0.8 → 7.1.2
37
+ - Ruby 3.1.4 → 3.2.2
38
+
39
+ # 更新方法
40
+
41
+ 以下のように新規作成したアプリと比較
42
+
43
+ ```
44
+ docker run --rm -it ruby:3.1.4 /bin/bash
45
+ gem i rails -v '~> 7.0.0'
46
+ rails new /tmp/hoge --database=postgresql
47
+ ```
48
+
49
+ # 新規と比較して更新
50
+
51
+ - `Gemfile`
52
+ - `config/environments/*.rb`
53
+
54
+ # bin/rails app:update
55
+
56
+ - `bin/rails app:update` で更新
57
+ - Active Storage の migration などの不要なものは除外してマージ
58
+
59
+ # decaffeinate
60
+
61
+ - テストを実行しようとすると `*.coffee` があるとエラーになった
62
+ - <https://github.com/decaffeinate/decaffeinate>
63
+ <https://decaffeinate-project.org/>
64
+ を使って `*.coffee` を変換
65
+
66
+ # turbolinks
67
+
68
+ - `turbolinks` も `Gemfile` から削除していたのでエラー
69
+ - `turbo` に書き換え
70
+ - `app/assets/javascripts/application.js` から
71
+ `//= require turbolinks` を削除
72
+ (`turbo` の追加は必要なかった)
73
+
74
+ # 警告対応
75
+
76
+ - `to_s(:delimited)` → `to_fs(:delimited)`
77
+
78
+ # assets:precompile 失敗
79
+
80
+ Dokku に deploy すると、なぜか `rake assets:precompile` でエラー
81
+
82
+ -----> Preparing app for Rails asset pipeline
83
+ Running: rake assets:precompile
84
+ rake aborted!
85
+ LoadError: cannot load such file -- coffee_script
86
+
87
+ 原因不明なので `coffee-rails` を `Gemfile` に戻した。
88
+
89
+ # ruby も更新
90
+
91
+ - ついでに ruby も 3.2.2 に更新
92
+ - `ruby file: ".ruby-version"` はデプロイでエラー
93
+ - `ruby File.read(".ruby-version").chomp` にした
94
+
95
+ # new framework defaults
96
+
97
+ - `config.load_defaults 7.0` に更新
98
+ - `new_framework_defaults_7_0.rb` を削除
99
+ - デプロイするとログアウトしていたのでログインしなおし
100
+
101
+ # 7.1 に更新
102
+
103
+ 以下と比較して `Gemfile` を更新
104
+
105
+ ```
106
+ docker run --rm -it ruby:3.2.2 /bin/bash
107
+ gem i rails
108
+ rails new /tmp/hoge --database=postgresql
109
+ ```
110
+
111
+ # app:update
112
+
113
+ - `bin/rails app:update`
114
+ - Active Storage の migration は除外してマージ
115
+
116
+ # デプロイ
117
+
118
+ - テストも問題なく通るのでデプロイ
119
+ - 問題なく動いてそう
120
+ - Rails 7.0 から 7.1 は Rails のバージョンを上げるだけならあっさりできた
121
+
122
+ # 今後
123
+
124
+ - `new_framework_defaults_7_1` はまだ未対応なので対応予定
125
+ - JavaScript の位置情報取得部分もテストしたい
126
+ - Rails 標準の minitest を試しているが、単純なテストのみなので rspec と両方にしたい
127
+ - bootstrap 4 のままなので、更新か他のものに移行したい
128
+ - 位置情報取得部分を jQuery から移行したい
129
+ - `coffee-rails` は調査不足で原因不明のままだが `sprockets` を消せば解決すると期待したい
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-znz-update-rails-2023-11
3
+ version: !ruby/object:Gem::Version
4
+ version: 2023.11.27.0
5
+ platform: ruby
6
+ authors:
7
+ - Kazuhiro NISHIYAMA
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-11-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: "[【出張版】Kyoto.rb Meetup 【大阪だよ】](https://kyotorb.connpass.com/event/296972/)のLT大会での発表資料です。"
28
+ email:
29
+ - zn@mbf.nifty.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - pdf/update-rails-2023-11-update-rails-2023-11.pdf
39
+ - update-rails-2023-11.md
40
+ homepage: https://slide.rabbit-shocker.org/authors/znz/update-rails-2023-11/
41
+ licenses: []
42
+ metadata: {}
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubygems_version: 3.4.10
59
+ signing_key:
60
+ specification_version: 4
61
+ summary: 小規模個人アプリをRails 7.xにバージョンアップした話
62
+ test_files: []