1
01:00:00,500 --> 01:00:02,000
Hey everyone, welcome back to the show.

2
01:00:02,500 --> 01:00:04,750
Today we have Jason McCreary,

3
01:00:05,041 --> 01:00:07,916
aka JMac, aka Gonedark,

4
01:00:08,375 --> 01:00:09,291
who's the creator of

5
01:00:09,291 --> 01:00:11,666
Laravel Shift, many awesome pull requests

6
01:00:11,666 --> 01:00:13,291
to Laravel and much more.

7
01:00:13,666 --> 01:00:14,791
Welcome to the show, Jason.

8
01:00:15,666 --> 01:00:16,125
Thank you.

9
01:00:17,625 --> 01:00:19,750
Yes. I guess start off with,

10
01:00:20,500 --> 01:00:22,083
why don't we have three names?

11
01:00:22,750 --> 01:00:24,875
You couldn't settle on one,

12
01:00:24,875 --> 01:00:25,500
you're just like, "I'm

13
01:00:25,500 --> 01:00:26,208
going to have all these."

14
01:00:27,000 --> 01:00:28,791
Jason McCreary, I guess,

15
01:00:28,791 --> 01:00:30,458
is what my parents gave me.

16
01:00:31,250 --> 01:00:32,500
Jaymak, I've mentioned it,

17
01:00:32,916 --> 01:00:34,125
it's a LaraCon talk.

18
01:00:35,000 --> 01:00:35,833
I don't know why, but

19
01:00:35,833 --> 01:00:38,125
every job I've ever had,

20
01:00:38,125 --> 01:00:39,875
there has been at least one other Jason.

21
01:00:40,208 --> 01:00:42,000
I've been on a smaller team

22
01:00:42,000 --> 01:00:44,125
where there were four Jason's.

23
01:00:44,625 --> 01:00:46,250
So by that point in time,

24
01:00:46,250 --> 01:00:48,250
everybody was, you do high school,

25
01:00:48,250 --> 01:00:49,708
you do last name, "Hey McCreary,

26
01:00:49,708 --> 01:00:53,375
hey McCreary." But that didn't even work.

27
01:00:53,375 --> 01:00:54,041
There was another one,

28
01:00:54,041 --> 01:00:55,791
Jason Meredith was his name.

29
01:00:55,958 --> 01:00:58,583
There was a Jason McKey

30
01:00:58,583 --> 01:00:59,791
that I worked with one time.

31
01:01:00,833 --> 01:01:04,250
So eventually it was like,

32
01:01:04,250 --> 01:01:05,750
"Okay, you're just

33
01:01:05,750 --> 01:01:07,750
Jason and you're Jaymak."

34
01:01:08,541 --> 01:01:10,125
So that's where Jaymak came from.

35
01:01:11,333 --> 01:01:13,000
Gone Dark was just,

36
01:01:13,375 --> 01:01:15,500
I think when I first joined Twitter,

37
01:01:16,375 --> 01:01:18,666
I was watching Jack Bauer, 24.

38
01:01:20,000 --> 01:01:22,291
Remember the old, we're Zoomers,

39
01:01:22,291 --> 01:01:23,750
so you probably remember the old TV

40
01:01:23,750 --> 01:01:25,708
series of Jack Bauer.

41
01:01:26,500 --> 01:01:28,208
I always thought it was hilarious when

42
01:01:28,208 --> 01:01:29,666
Jack Bauer was like,

43
01:01:30,500 --> 01:01:31,208
"I'm gonna go dark."

44
01:01:31,916 --> 01:01:33,708
That was when he was super

45
01:01:33,708 --> 01:01:35,208
spy out of communication.

46
01:01:36,583 --> 01:01:38,958
And I just thought that was a stupid,

47
01:01:38,958 --> 01:01:42,041
ironical name to have for Twitter,

48
01:01:42,083 --> 01:01:47,416
massively public tweets at the time.

49
01:01:47,416 --> 01:01:48,250
I thought that was funny.

50
01:01:49,250 --> 01:01:50,291
It is, that's good.

51
01:01:51,000 --> 01:01:51,750
Yeah, it's funny,

52
01:01:51,750 --> 01:01:53,625
because we used to show

53
01:01:53,625 --> 01:01:55,375
him my age when 24 came out,

54
01:01:55,458 --> 01:01:56,833
it was like a thing,

55
01:01:57,125 --> 01:01:58,333
everybody, we would

56
01:01:58,333 --> 01:01:59,208
go to my buddy's house

57
01:01:59,208 --> 01:01:59,958
and we would watch it.

58
01:02:00,250 --> 01:02:01,166
It's like, "What's gonna

59
01:02:01,166 --> 01:02:02,333
happen in the 13th hour?"

60
01:02:03,500 --> 01:02:05,916
People don't understand the excitement

61
01:02:06,291 --> 01:02:08,375
of an old show like that,

62
01:02:08,375 --> 01:02:09,958
that was really pre-internet

63
01:02:09,958 --> 01:02:12,333
and DVR and all this stuff,

64
01:02:12,333 --> 01:02:13,000
and no binging.

65
01:02:13,291 --> 01:02:14,125
I mean, you had to wait a

66
01:02:14,125 --> 01:02:16,166
week and talk to your friends

67
01:02:16,708 --> 01:02:18,458
and guess what was

68
01:02:18,458 --> 01:02:19,375
gonna be on the next show.

69
01:02:19,666 --> 01:02:20,625
Some of the excitement's

70
01:02:20,625 --> 01:02:22,458
gone because of that, I think.

71
01:02:24,625 --> 01:02:25,750
Yes, totally agree.

72
01:02:26,666 --> 01:02:28,708
I think Lost was one of the first shows

73
01:02:28,708 --> 01:02:30,333
that was pretty cool,

74
01:02:30,333 --> 01:02:30,833
where it was just like

75
01:02:30,833 --> 01:02:32,875
deep internet archives of,

76
01:02:33,125 --> 01:02:33,708
that was probably the

77
01:02:33,708 --> 01:02:36,041
best balance of week to week,

78
01:02:36,041 --> 01:02:37,333
but then also internet.

79
01:02:37,708 --> 01:02:38,541
Now it's all ruined.

80
01:02:38,791 --> 01:02:39,916
You can just watch

81
01:02:39,916 --> 01:02:41,625
every episode in an hour.

82
01:02:42,625 --> 01:02:45,708
Yeah, that's been our consumption now.

83
01:02:45,958 --> 01:02:47,333
You find a series and you just binge it

84
01:02:47,333 --> 01:02:48,083
and then you're like, "Oh,

85
01:02:48,083 --> 01:02:49,041
what are we gonna do now?"

86
01:02:49,041 --> 01:02:49,500
And it's like, "Oh."

87
01:02:50,000 --> 01:02:50,833
Okay, that's done.

88
01:02:51,041 --> 01:02:52,208
You can't even appreciate it almost.

89
01:02:52,250 --> 01:02:53,666
It's just like it's done now.

90
01:02:54,875 --> 01:02:55,250
For sure.

91
01:02:55,916 --> 01:02:58,541
All right, so let's jump into Laravel 12,

92
01:02:58,875 --> 01:02:59,958
which is coming out,

93
01:03:00,958 --> 01:03:02,000
as of this recording,

94
01:03:02,000 --> 01:03:03,166
it's coming out in about two weeks.

95
01:03:03,166 --> 01:03:03,916
So by the time we publish,

96
01:03:04,125 --> 01:03:05,333
it'll be right around the time.

97
01:03:06,916 --> 01:03:08,875
I have been following along a little bit.

98
01:03:09,291 --> 01:03:11,250
You have been actually deep into it

99
01:03:11,250 --> 01:03:12,541
because you've been doing live streams

100
01:03:12,750 --> 01:03:14,500
on Laravel 12 stuff.

101
01:03:15,166 --> 01:03:17,041
So what specifically have

102
01:03:17,041 --> 01:03:18,250
you been working on with it?

103
01:03:19,166 --> 01:03:20,041
A lot of the live streams

104
01:03:20,041 --> 01:03:21,958
actually were more ideas.

105
01:03:22,333 --> 01:03:24,291
I always have these things

106
01:03:24,291 --> 01:03:26,041
that I wanna see be in the framework.

107
01:03:26,500 --> 01:03:27,000
And then of course you

108
01:03:27,000 --> 01:03:28,958
get busy the whole year.

109
01:03:29,625 --> 01:03:30,458
And then they announce,

110
01:03:30,875 --> 01:03:32,625
"Laravel 12's coming two weeks."

111
01:03:32,625 --> 01:03:33,125
And you're like, "Oh

112
01:03:33,125 --> 01:03:34,166
crap, I wanted to see

113
01:03:34,166 --> 01:03:35,000
if I could add this."

114
01:03:35,333 --> 01:03:36,333
And they're normally

115
01:03:36,333 --> 01:03:37,666
bigger concepts that like,

116
01:03:37,666 --> 01:03:38,541
yeah, you couldn't throw

117
01:03:38,541 --> 01:03:39,916
out in a minor release.

118
01:03:39,916 --> 01:03:40,958
Maybe it's a breaking change.

119
01:03:40,958 --> 01:03:42,958
Maybe it's a convention change.

120
01:03:43,166 --> 01:03:44,208
Maybe it's a default

121
01:03:44,208 --> 01:03:45,333
value that gets changed.

122
01:03:45,916 --> 01:03:47,500
So those are more what the live streams

123
01:03:47,625 --> 01:03:48,708
the last few weeks have been.

124
01:03:48,708 --> 01:03:50,250
It's just like, can

125
01:03:50,250 --> 01:03:51,750
these tiny little things get

126
01:03:52,500 --> 01:03:54,166
into Laravel 12 as

127
01:03:54,166 --> 01:03:55,666
potentially breaking changes?

128
01:03:55,875 --> 01:03:57,166
Cause you get once a year

129
01:03:57,500 --> 01:03:59,458
to try to get something that's breaking.

130
01:03:59,458 --> 01:04:00,416
And we all know, and

131
01:04:00,416 --> 01:04:01,291
I'm sure we'll talk about,

132
01:04:02,000 --> 01:04:03,416
Taylor's now of the stance,

133
01:04:03,416 --> 01:04:04,166
he hates breaking

134
01:04:04,166 --> 01:04:05,583
changes, no breaking changes.

135
01:04:08,208 --> 01:04:09,000
So some of them got

136
01:04:09,000 --> 01:04:10,083
in, some of them didn't.

137
01:04:10,083 --> 01:04:10,541
Some of them were,

138
01:04:10,541 --> 01:04:11,875
they're tiny little paper cuts.

139
01:04:13,208 --> 01:04:14,541
But yeah, that's just

140
01:04:14,541 --> 01:04:15,916
me as a Laravel user.

141
01:04:16,333 --> 01:04:18,166
That's kind of unrelated to shift.

142
01:04:18,166 --> 01:04:19,541
It's just me, like as

143
01:04:19,541 --> 01:04:20,541
someone who's used Laravel

144
01:04:20,541 --> 01:04:22,541
for 10 years, here's some

145
01:04:22,541 --> 01:04:24,750
small little power user things

146
01:04:24,750 --> 01:04:26,875
that I would love to readdress.

147
01:04:26,875 --> 01:04:27,583
I would love to have

148
01:04:27,583 --> 01:04:28,791
more attention, right?

149
01:04:30,208 --> 01:04:32,708
Yes, which that sort of brings me to,

150
01:04:33,000 --> 01:04:34,833
you're very good at the paper cuts

151
01:04:35,000 --> 01:04:37,083
because the current Laravel

152
01:04:37,083 --> 01:04:39,041
release that came out yesterday

153
01:04:39,500 --> 01:04:41,416
had all these new little date,

154
01:04:42,375 --> 01:04:43,416
relative date methods.

155
01:04:43,708 --> 01:04:46,916
And I know they got declined before,

156
01:04:47,250 --> 01:04:48,833
but for me, I just love

157
01:04:48,833 --> 01:04:49,958
little stuff like this.

158
01:04:49,958 --> 01:04:50,625
Like it's easy to

159
01:04:50,625 --> 01:04:51,750
talk about it, it's fun.

160
01:04:52,208 --> 01:04:53,083
You know, you can

161
01:04:53,083 --> 01:04:54,125
refactor all this stuff.

162
01:04:54,333 --> 01:04:55,750
So how did that come about?

163
01:04:55,750 --> 01:04:56,375
You just were like,

164
01:04:56,375 --> 01:04:57,291
I'm gonna do this again

165
01:04:57,291 --> 01:04:58,500
and it's gonna go through this stuff.

166
01:04:59,166 --> 01:04:59,916
Yeah, I was working on

167
01:04:59,916 --> 01:05:01,375
that side project with JT

168
01:05:01,750 --> 01:05:04,375
and I wrote it.

169
01:05:04,833 --> 01:05:05,625
I wrote, like a lot of

170
01:05:05,625 --> 01:05:06,625
the times these paper cuts,

171
01:05:06,833 --> 01:05:07,541
like again, as someone

172
01:05:07,541 --> 01:05:08,791
who's used Laravel for 10 years,

173
01:05:08,791 --> 01:05:10,250
sometimes you make assumptions of like,

174
01:05:10,250 --> 01:05:12,000
well, this has to exist, right?

175
01:05:12,000 --> 01:05:12,375
Like you don't

176
01:05:12,375 --> 01:05:13,416
necessarily have the autocomplete

177
01:05:13,500 --> 01:05:15,250
or something, but you're kind of like,

178
01:05:15,708 --> 01:05:16,500
there's so many

179
01:05:16,500 --> 01:05:19,625
beautiful, human, expressive,

180
01:05:19,666 --> 01:05:21,708
chained methods in

181
01:05:21,708 --> 01:05:22,916
Laravel that a lot of times

182
01:05:22,916 --> 01:05:24,750
you're just like, hey, I

183
01:05:24,750 --> 01:05:27,125
wonder if where past exists

184
01:05:27,458 --> 01:05:28,708
on Query Builder, right?

185
01:05:28,708 --> 01:05:30,291
And I had done that two or three times

186
01:05:30,291 --> 01:05:30,958
in this other side

187
01:05:30,958 --> 01:05:32,083
project and it wasn't there.

188
01:05:32,083 --> 01:05:32,875
And I was like, I

189
01:05:32,875 --> 01:05:33,958
feel like this was there.

190
01:05:34,333 --> 01:05:35,125
And then I stumbled on

191
01:05:35,125 --> 01:05:37,583
that PR that it got declined,

192
01:05:38,375 --> 01:05:40,333
I guess two or three years ago now.

193
01:05:40,333 --> 01:05:41,875
And I was like, I'm

194
01:05:41,875 --> 01:05:43,166
just gonna resubmit this

195
01:05:43,375 --> 01:05:44,625
in its current state

196
01:05:44,625 --> 01:05:46,708
and see if it gets in.

197
01:05:46,708 --> 01:05:47,125
Cause honestly,

198
01:05:47,125 --> 01:05:49,416
sometimes it just gets in, right?

199
01:05:49,416 --> 01:05:51,250
Like everybody's got a new mindset.

200
01:05:51,250 --> 01:05:52,666
There's more to the framework now.

201
01:05:52,666 --> 01:05:53,500
There's more of these

202
01:05:53,500 --> 01:05:54,875
kinds of helpful methods.

203
01:05:55,708 --> 01:05:57,125
Taylor's in a different place.

204
01:05:57,125 --> 01:05:58,708
Maybe he now sees a need, right?

205
01:05:59,500 --> 01:06:00,583
So there's just so many factors.

206
01:06:01,125 --> 01:06:02,416
And it's funny that you

207
01:06:02,416 --> 01:06:03,750
said that you liked it.

208
01:06:03,750 --> 01:06:04,708
Cause yeah, it's just,

209
01:06:05,000 --> 01:06:06,541
I find lately sometimes

210
01:06:06,541 --> 01:06:07,666
these things are met.

211
01:06:09,000 --> 01:06:10,041
As the community grows,

212
01:06:10,041 --> 01:06:12,083
you get more opinions, right?

213
01:06:12,166 --> 01:06:13,958
That's just how the world works.

214
01:06:14,583 --> 01:06:17,625
And I just, sometimes these PRs,

215
01:06:17,625 --> 01:06:19,333
like they're just met with

216
01:06:19,333 --> 01:06:21,916
some thumbs downy stuff lately.

217
01:06:21,916 --> 01:06:23,958
And I'm just kind of like, I don't know,

218
01:06:23,958 --> 01:06:26,666
that doesn't feel the way past, you know,

219
01:06:26,791 --> 01:06:28,541
sometimes they just get in right away.

220
01:06:28,541 --> 01:06:30,166
They're not even whatever.

221
01:06:30,166 --> 01:06:30,750
And then other times

222
01:06:30,750 --> 01:06:32,333
you'll get 50 thumbs ups

223
01:06:32,333 --> 01:06:33,416
and it gets closed.

224
01:06:33,416 --> 01:06:34,166
And then other times

225
01:06:34,166 --> 01:06:35,541
you'll get 10 thumbs down

226
01:06:35,541 --> 01:06:36,291
and it gets merged.

227
01:06:36,291 --> 01:06:38,708
So it's just funny is all, right?

228
01:06:39,000 --> 01:06:39,166
Yeah.

229
01:06:40,166 --> 01:06:42,500
And like you said, I assume

230
01:06:42,500 --> 01:06:44,625
a lot of it just comes down

231
01:06:44,625 --> 01:06:46,291
to what the reviewer, the

232
01:06:46,291 --> 01:06:48,416
end reviewer thinks that day,

233
01:06:48,666 --> 01:06:49,416
you know, like if it's

234
01:06:49,416 --> 01:06:50,666
Taylor or if it's somebody else,

235
01:06:50,666 --> 01:06:52,041
it's just like, you

236
01:06:52,041 --> 01:06:53,166
just need to catch them

237
01:06:53,166 --> 01:06:54,083
on that right moment.

238
01:06:54,833 --> 01:06:56,250
I think it's always Taylor.

239
01:06:56,250 --> 01:06:57,875
I mean, he says that anyway.

240
01:06:58,125 --> 01:06:58,583
I mean, there are other

241
01:06:58,583 --> 01:06:59,750
people that might chime in

242
01:06:59,750 --> 01:07:01,291
from the team, but he, I

243
01:07:01,291 --> 01:07:03,083
think is still to this day,

244
01:07:03,125 --> 01:07:05,625
like merges every PR.

245
01:07:05,875 --> 01:07:07,500
Like it's a point of pride for him.

246
01:07:07,791 --> 01:07:08,625
You know, the framework is

247
01:07:08,625 --> 01:07:10,083
always going to be his baby.

248
01:07:11,541 --> 01:07:11,708
Yeah.

249
01:07:12,041 --> 01:07:14,166
I think, yeah, from

250
01:07:14,166 --> 01:07:15,208
everything I've heard too,

251
01:07:15,208 --> 01:07:16,250
I do agree with that.

252
01:07:16,625 --> 01:07:17,625
But I was going to say,

253
01:07:18,375 --> 01:07:19,833
Laervel itself has actually

254
01:07:19,833 --> 01:07:21,541
been merging more of those.

255
01:07:21,541 --> 01:07:22,916
You know, we've got that number helper.

256
01:07:23,375 --> 01:07:25,458
I think CodeWithCaen put in.

257
01:07:26,125 --> 01:07:26,875
There's been all these

258
01:07:26,875 --> 01:07:28,166
little helpers in this last,

259
01:07:28,583 --> 01:07:29,333
I feel like in the last

260
01:07:29,333 --> 01:07:30,958
year that that's came about.

261
01:07:31,833 --> 01:07:33,583
And again, I think they're super useful

262
01:07:33,583 --> 01:07:36,125
and super fun to talk about, but yeah.

263
01:07:36,166 --> 01:07:37,916
I kind of mentioned that to, yeah.

264
01:07:37,958 --> 01:07:39,375
I mentioned that to Taylor, like,

265
01:07:39,541 --> 01:07:40,583
especially, you know,

266
01:07:40,583 --> 01:07:42,166
we were talking about these date things

267
01:07:42,166 --> 01:07:44,458
cause he was kind of, you

268
01:07:44,458 --> 01:07:47,041
know, oh yeah, I dig it.

269
01:07:47,041 --> 01:07:48,333
I don't know why we didn't merge this

270
01:07:48,333 --> 01:07:49,166
before kind of thing.

271
01:07:49,166 --> 01:07:50,750
And like, it was, it's one of those

272
01:07:50,750 --> 01:07:53,000
things where, you know,

273
01:07:54,000 --> 01:07:57,500
I think the framework is so large now

274
01:07:57,833 --> 01:08:00,208
that you're going to have,

275
01:08:00,208 --> 01:08:01,041
you're going to have to

276
01:08:01,041 --> 01:08:03,500
have aliases for things

277
01:08:03,500 --> 01:08:04,833
like naming so subjective.

278
01:08:05,125 --> 01:08:05,916
If you want to appeal

279
01:08:05,916 --> 01:08:06,958
to the broadest audience,

280
01:08:07,916 --> 01:08:08,750
you can't just be

281
01:08:08,750 --> 01:08:10,125
stark about, okay, well,

282
01:08:10,125 --> 01:08:10,833
this is the technical

283
01:08:10,833 --> 01:08:12,000
name that we're going to use.

284
01:08:12,000 --> 01:08:14,750
Like you need to allow like where not,

285
01:08:15,500 --> 01:08:17,250
and you know, missing

286
01:08:17,250 --> 01:08:19,166
versus exists or both.

287
01:08:19,541 --> 01:08:20,000
I mean, so there's

288
01:08:20,000 --> 01:08:21,000
going to be a lot of aliases

289
01:08:21,250 --> 01:08:22,708
for methods that maybe

290
01:08:22,708 --> 01:08:23,958
one person likes missing

291
01:08:23,958 --> 01:08:26,333
and one person likes not exists, right?

292
01:08:26,875 --> 01:08:29,000
Like it's just, again, it's

293
01:08:29,000 --> 01:08:30,291
the way the world is, right?

294
01:08:31,541 --> 01:08:32,000
Yeah, yeah.

295
01:08:32,166 --> 01:08:34,833
It kind of reminds me of Tailwind CSS

296
01:08:35,166 --> 01:08:37,208
with the way they spell gray

297
01:08:37,458 --> 01:08:38,916
and then I spell it the opposite way.

298
01:08:39,166 --> 01:08:39,958
And it's like, I always have

299
01:08:39,958 --> 01:08:41,583
to go in and put an alias in

300
01:08:41,583 --> 01:08:43,000
cause I can't speak the other way.

301
01:08:43,458 --> 01:08:45,500
Yeah, I think at some point they said,

302
01:08:45,500 --> 01:08:47,000
no, it's just gray with an

303
01:08:47,000 --> 01:08:49,583
A, I think, I don't know.

304
01:08:49,583 --> 01:08:51,291
But I remember gray with

305
01:08:51,291 --> 01:08:52,333
the E for a little while.

306
01:08:54,083 --> 01:08:54,291
Yeah.

307
01:08:55,291 --> 01:08:55,833
Yeah, you could

308
01:08:55,833 --> 01:08:56,958
choose that as a framework,

309
01:08:57,166 --> 01:08:59,250
but I'm glad that Laravel doesn't, right?

310
01:08:59,250 --> 01:08:59,833
I think if you want

311
01:08:59,833 --> 01:09:00,708
to appeal to the most,

312
01:09:00,708 --> 01:09:01,375
I mean, don't do it

313
01:09:01,375 --> 01:09:02,916
willy nilly on everything,

314
01:09:03,125 --> 01:09:04,833
but once you do it once,

315
01:09:04,833 --> 01:09:06,166
you kind of have to accept

316
01:09:06,333 --> 01:09:08,291
that you're going to get PRs

317
01:09:08,291 --> 01:09:10,083
for a bunch of aliases and.

318
01:09:12,000 --> 01:09:12,166
Yeah.

319
01:09:12,833 --> 01:09:14,916
Well, so, you know, as

320
01:09:14,916 --> 01:09:16,375
you're submitting pull requests

321
01:09:16,375 --> 01:09:17,000
and looking through the

322
01:09:17,000 --> 01:09:17,958
framework and stuff like that,

323
01:09:17,958 --> 01:09:19,125
I know you're talking about, you know,

324
01:09:19,125 --> 01:09:20,541
fixing little paper cuts and things,

325
01:09:21,791 --> 01:09:23,291
with Taylor saying that Laravel 12

326
01:09:23,291 --> 01:09:25,333
is not going to be a breaking change or,

327
01:09:27,041 --> 01:09:28,625
I want to say that's what he said, right?

328
01:09:28,625 --> 01:09:29,333
There's going to be no

329
01:09:29,333 --> 01:09:30,416
breaking changes in 12.

330
01:09:30,458 --> 01:09:30,916
No breaking changes.

331
01:09:33,000 --> 01:09:33,375
It's the claim.

332
01:09:34,125 --> 01:09:35,000
The claim, yes.

333
01:09:35,333 --> 01:09:36,291
I was going to say, so does,

334
01:09:37,416 --> 01:09:39,083
how's that going to work going forward?

335
01:09:39,083 --> 01:09:39,791
Is this just going to be

336
01:09:39,791 --> 01:09:41,333
like a one-off release this way,

337
01:09:41,333 --> 01:09:42,291
or do you think they're

338
01:09:42,291 --> 01:09:43,291
going to keep striving

339
01:09:43,458 --> 01:09:44,500
to not have breaking changes?

340
01:09:45,166 --> 01:09:46,458
I do think it's a

341
01:09:46,458 --> 01:09:48,333
trend for Taylor and team.

342
01:09:49,375 --> 01:09:51,458
You know, I know Nuno has been a big fan

343
01:09:51,458 --> 01:09:52,333
of things like Rust,

344
01:09:52,750 --> 01:09:54,583
and I know there are

345
01:09:54,583 --> 01:09:56,250
things of these other languages,

346
01:09:56,500 --> 01:09:58,833
you know, there are traits of them that,

347
01:09:59,625 --> 01:10:01,458
you know, they don't have

348
01:10:01,458 --> 01:10:03,250
necessarily big huge releases,

349
01:10:03,458 --> 01:10:05,416
or they don't have breaking changes.

350
01:10:05,583 --> 01:10:07,583
You just kind of toggle on features

351
01:10:07,833 --> 01:10:09,500
or you opt into features.

352
01:10:09,916 --> 01:10:11,541
So there is maybe

353
01:10:11,541 --> 01:10:14,416
something there for the future.

354
01:10:15,791 --> 01:10:16,958
At the same time, I mean,

355
01:10:18,000 --> 01:10:19,000
we have to be a little bit

356
01:10:19,000 --> 01:10:21,041
realistic in the fact that like,

357
01:10:21,500 --> 01:10:22,541
no breaking changes,

358
01:10:22,916 --> 01:10:24,666
there's some nuance to breaking change,

359
01:10:24,666 --> 01:10:25,666
no break, that statement,

360
01:10:25,666 --> 01:10:26,541
there's some nuance, right?

361
01:10:26,541 --> 01:10:27,875
We all know this, like,

362
01:10:28,583 --> 01:10:29,000
just because there

363
01:10:29,000 --> 01:10:30,208
are no breaking changes

364
01:10:30,208 --> 01:10:31,875
doesn't mean there are no changes.

365
01:10:33,041 --> 01:10:34,791
So it's not like you can

366
01:10:34,791 --> 01:10:38,125
just truly go into your new app

367
01:10:38,291 --> 01:10:39,083
and say, or your

368
01:10:39,083 --> 01:10:40,250
LayerVille 11 app and say,

369
01:10:40,250 --> 01:10:41,958
Composer update, and it

370
01:10:41,958 --> 01:10:43,083
just runs LayerVille 12.

371
01:10:43,333 --> 01:10:44,041
Like you, at the

372
01:10:44,041 --> 01:10:45,916
minimum, you got to go in,

373
01:10:45,916 --> 01:10:47,000
you got to bump your dependencies

374
01:10:47,000 --> 01:10:48,583
in your Composer JSON file,

375
01:10:48,791 --> 01:10:49,916
you got to review

376
01:10:49,916 --> 01:10:51,458
some things to make sure

377
01:10:51,458 --> 01:10:53,333
there aren't some new pieces

378
01:10:53,500 --> 01:10:54,458
that have to come into

379
01:10:54,458 --> 01:10:56,041
the core files or config,

380
01:10:56,250 --> 01:10:58,541
I mean, config files are always changing.

381
01:10:58,541 --> 01:11:00,375
You know, every minor release,

382
01:11:00,625 --> 01:11:02,041
there's a new ENV

383
01:11:02,041 --> 01:11:03,541
variable or a new line of code

384
01:11:03,541 --> 01:11:05,583
or a new option inside of a config file.

385
01:11:05,958 --> 01:11:07,791
So, you know, if you upgraded the

386
01:11:07,791 --> 01:11:09,000
LayerVille 11 last March,

387
01:11:09,291 --> 01:11:10,625
you have a year worth,

388
01:11:10,625 --> 01:11:12,875
you have 52 releases,

389
01:11:13,541 --> 01:11:15,416
minor releases of LayerVille that have

390
01:11:15,416 --> 01:11:16,666
happened since then.

391
01:11:17,500 --> 01:11:19,583
And there's a lot, as

392
01:11:19,583 --> 01:11:20,333
we just talked about,

393
01:11:20,333 --> 01:11:21,291
there's a lot of stuff in

394
01:11:21,291 --> 01:11:22,041
each one of those things.

395
01:11:22,375 --> 01:11:25,375
So, you know, what

396
01:11:25,375 --> 01:11:26,625
direction is the framework heading

397
01:11:26,625 --> 01:11:27,833
as far as major

398
01:11:27,833 --> 01:11:29,208
releases and breaking changes?

399
01:11:30,375 --> 01:11:31,666
I don't know, that might be a trend,

400
01:11:31,666 --> 01:11:34,708
but at the same time, the parallel

401
01:11:35,291 --> 01:11:37,000
that maybe we're getting at here is,

402
01:11:37,625 --> 01:11:38,208
you know, what is

403
01:11:38,208 --> 01:11:39,666
shift going to do, right?

404
01:11:40,083 --> 01:11:43,416
And there's always stuff to change.

405
01:11:43,416 --> 01:11:46,125
There's always code that changes.

406
01:11:46,125 --> 01:11:46,833
I think we all know

407
01:11:46,833 --> 01:11:47,958
it's never just as simple

408
01:11:47,958 --> 01:11:49,375
as running Composer update.

409
01:11:49,583 --> 01:11:51,583
It's maybe it is once or twice,

410
01:11:51,666 --> 01:11:54,041
but it's not by LayerVille 13.14.

411
01:11:54,041 --> 01:11:55,833
At some point, you're going to pay down

412
01:11:56,583 --> 01:11:57,500
those kind of shortcuts

413
01:11:57,500 --> 01:11:59,041
that you took along the way.

414
01:11:59,041 --> 01:12:00,291
And so shift is always going to be there

415
01:12:00,291 --> 01:12:01,041
to kind of make sure

416
01:12:01,041 --> 01:12:03,041
that your app truly looks

417
01:12:03,041 --> 01:12:05,000
and feels like LayerVille 12, right?

418
01:12:05,500 --> 01:12:07,166
Like there's a huge difference

419
01:12:07,166 --> 01:12:07,916
between LayerVille 10

420
01:12:07,916 --> 01:12:09,083
and LayerVille 11, right?

421
01:12:09,083 --> 01:12:10,166
That was a huge release.

422
01:12:10,416 --> 01:12:11,375
I think it gets underplayed

423
01:12:11,375 --> 01:12:12,708
because the docs kind of say,

424
01:12:13,458 --> 01:12:14,083
don't worry about

425
01:12:14,083 --> 01:12:15,041
changing your structure,

426
01:12:15,583 --> 01:12:17,958
but there's a lot

427
01:12:17,958 --> 01:12:19,083
there between a LayerVille,

428
01:12:19,083 --> 01:12:20,291
if you go look at a LayerVille 10 app

429
01:12:20,333 --> 01:12:21,875
and you look at a LayerVille 11 app,

430
01:12:22,333 --> 01:12:23,916
completely different, you know?

431
01:12:24,125 --> 01:12:25,875
The way in which you do almost everything

432
01:12:25,875 --> 01:12:27,166
is completely different.

433
01:12:27,166 --> 01:12:28,041
The way you register

434
01:12:28,041 --> 01:12:29,083
middleware, different.

435
01:12:29,291 --> 01:12:31,833
The way, you know, you configure your app

436
01:12:31,833 --> 01:12:33,291
or bootstrap your application, different.

437
01:12:33,583 --> 01:12:34,791
The way you put things in service

438
01:12:34,791 --> 01:12:35,750
providers, different.

439
01:12:35,750 --> 01:12:38,166
There are no more kernels, you know,

440
01:12:38,625 --> 01:12:40,833
so much changed in LayerVille 11.

441
01:12:41,416 --> 01:12:42,291
And again, I think

442
01:12:42,291 --> 01:12:43,291
because of the upgrade guide,

443
01:12:43,291 --> 01:12:46,833
not everybody moved to that structure.

444
01:12:47,083 --> 01:12:47,875
So if nothing else,

445
01:12:47,875 --> 01:12:48,916
the LayerVille 12 shift

446
01:12:49,708 --> 01:12:51,500
would make sure that you

447
01:12:51,500 --> 01:12:53,333
are following, you know,

448
01:12:53,333 --> 01:12:54,125
everyone's gonna slowly

449
01:12:54,125 --> 01:12:55,333
move to that structure.

450
01:12:55,333 --> 01:12:57,416
We all, again, we all kind of know and

451
01:12:57,416 --> 01:12:59,166
know this deep down.

452
01:13:00,041 --> 01:13:01,333
And who knows if that structure ever,

453
01:13:01,583 --> 01:13:02,458
that older structure ever

454
01:13:02,458 --> 01:13:04,958
gets, you know, unsupported.

455
01:13:05,500 --> 01:13:06,583
You know, this happens, right?

456
01:13:07,375 --> 01:13:09,500
Yeah, yeah, the, you know,

457
01:13:09,500 --> 01:13:10,541
speaking of LayerVille shift,

458
01:13:11,291 --> 01:13:12,541
basically for like

459
01:13:12,541 --> 01:13:13,666
LayerVille news website,

460
01:13:13,666 --> 01:13:14,458
I always run it through

461
01:13:14,458 --> 01:13:17,166
shift and it's just, I mean,

462
01:13:18,000 --> 01:13:19,291
like you said, I was

463
01:13:19,291 --> 01:13:20,250
going back to Laravel 10

464
01:13:20,250 --> 01:13:21,208
versus Laravel 11.

465
01:13:22,000 --> 01:13:22,500
I went through the

466
01:13:22,500 --> 01:13:23,291
upgrade guide and I was like,

467
01:13:23,291 --> 01:13:24,166
"Eh, this is not too bad."

468
01:13:24,166 --> 01:13:25,083
But I was like, "I'm gonna do it anyway

469
01:13:25,083 --> 01:13:25,750
because it's like, I

470
01:13:25,750 --> 01:13:27,666
don't want to, you know,

471
01:13:27,666 --> 01:13:29,166
spend any time on this really."

472
01:13:29,458 --> 01:13:29,666
Yeah.

473
01:13:30,916 --> 01:13:31,791
And then it was like, "Boom!"

474
01:13:31,791 --> 01:13:33,833
It's like, "Boom, here's like 70 commits

475
01:13:34,041 --> 01:13:35,000
to fix all this stuff

476
01:13:35,000 --> 01:13:35,791
and change it around."

477
01:13:35,791 --> 01:13:36,791
I was like, "This is perfect."

478
01:13:36,791 --> 01:13:38,000
Like, it was so good to go

479
01:13:38,000 --> 01:13:39,833
through that and just have it,

480
01:13:39,833 --> 01:13:41,166
you know, not even have to think twice

481
01:13:41,166 --> 01:13:41,708
because you've

482
01:13:41,708 --> 01:13:43,375
already done the hard work.

483
01:13:43,541 --> 01:13:44,291
Like, "Why am I gonna

484
01:13:44,291 --> 01:13:45,500
waste this time of my life

485
01:13:45,625 --> 01:13:47,000
when you're doing it, we

486
01:13:47,000 --> 01:13:47,791
could send you some money

487
01:13:47,958 --> 01:13:48,833
and it's just done."

488
01:13:49,583 --> 01:13:51,250
Yeah, I mean, that's the thing, right?

489
01:13:51,666 --> 01:13:53,041
Like, it's always, you

490
01:13:53,041 --> 01:13:55,500
could always, the statements of,

491
01:13:55,500 --> 01:13:56,833
you know, hopefully you

492
01:13:56,833 --> 01:13:57,833
can just run Composer Update

493
01:13:58,000 --> 01:13:59,041
and be on Laravel 12.

494
01:13:59,750 --> 01:14:01,250
That's always going to be a possibility.

495
01:14:01,458 --> 01:14:03,000
That always has been a possibility.

496
01:14:04,291 --> 01:14:05,291
I think where shift's

497
01:14:05,291 --> 01:14:06,750
value really, really comes

498
01:14:07,000 --> 01:14:08,458
and where I hope that

499
01:14:08,458 --> 01:14:09,416
over the last 10 years

500
01:14:09,416 --> 01:14:10,041
I've kind of earned the

501
01:14:10,041 --> 01:14:12,125
reputation is that shift again,

502
01:14:12,625 --> 01:14:13,916
its goal is that your

503
01:14:13,916 --> 01:14:15,916
application looks and feels

504
01:14:16,666 --> 01:14:17,625
like LayerVille 12.

505
01:14:17,666 --> 01:14:19,750
It's not just running LayerVille 12,

506
01:14:19,750 --> 01:14:21,583
it actually looks like LayerVille 12.

507
01:14:21,583 --> 01:14:22,750
Your example code, your

508
01:14:22,750 --> 01:14:24,000
code matches the examples

509
01:14:24,000 --> 01:14:24,833
from the documentation.

510
01:14:25,416 --> 01:14:27,208
The conventions are adopted.

511
01:14:28,000 --> 01:14:30,625
You know, you are truly running a

512
01:14:30,625 --> 01:14:32,083
LayerVille 12 application.

513
01:14:32,708 --> 01:14:35,916
In that regard, shift has always gone far

514
01:14:36,041 --> 01:14:36,875
beyond the upgrade

515
01:14:36,875 --> 01:14:39,208
guide, very much so for 11,

516
01:14:40,041 --> 01:14:41,000
and you know, as you noted.

517
01:14:41,666 --> 01:14:42,958
And it'll continue to do that.

518
01:14:42,958 --> 01:14:44,708
So I hope that even if there

519
01:14:44,708 --> 01:14:46,416
were truly no breaking changes

520
01:14:46,708 --> 01:14:48,875
like there's still

521
01:14:48,875 --> 01:14:50,916
going to be a value add

522
01:14:50,916 --> 01:14:52,333
that shift can offer.

523
01:14:52,750 --> 01:14:53,541
Honestly, I'm kind of

524
01:14:53,541 --> 01:14:54,916
excited because it allows me

525
01:14:54,916 --> 01:14:56,375
to focus on more of those

526
01:14:56,375 --> 01:14:58,125
conventional code changes

527
01:14:58,458 --> 01:15:00,416
that, you know, with 11,

528
01:15:00,416 --> 01:15:01,208
I got to move your files

529
01:15:01,208 --> 01:15:02,458
or I got to do a lot of work there

530
01:15:02,458 --> 01:15:02,958
and I don't want to

531
01:15:02,958 --> 01:15:04,208
make the PR too noisy.

532
01:15:04,375 --> 01:15:05,666
So maybe I didn't do some

533
01:15:05,666 --> 01:15:07,083
code refactoring things,

534
01:15:07,083 --> 01:15:08,666
but if there truly

535
01:15:08,666 --> 01:15:09,791
are no breaking changes,

536
01:15:10,000 --> 01:15:11,708
I get to focus more on like the cool

537
01:15:11,708 --> 01:15:13,125
refactor stuff, right?

538
01:15:13,333 --> 01:15:14,666
And that's what I think is really cool.

539
01:15:15,833 --> 01:15:16,833
Yeah, yeah, for sure.

540
01:15:17,416 --> 01:15:19,583
And I guess just from

541
01:15:19,583 --> 01:15:21,875
like, say you're running,

542
01:15:21,875 --> 01:15:22,833
say like you've got

543
01:15:22,833 --> 01:15:24,291
this old app, it's running,

544
01:15:24,291 --> 01:15:25,583
I don't know, Laravel 10,

545
01:15:26,166 --> 01:15:27,625
and you're now

546
01:15:27,625 --> 01:15:28,916
Laravel 12 is about to come out

547
01:15:28,916 --> 01:15:30,041
and you're like, well, I really need to

548
01:15:30,041 --> 01:15:30,750
be on Laravel 11.

549
01:15:32,125 --> 01:15:34,291
You, I guess the

550
01:15:34,291 --> 01:15:36,791
recommended pathway for shift

551
01:15:37,041 --> 01:15:38,375
is you would go and run

552
01:15:38,375 --> 01:15:41,041
the 10 to 11 shift, do that,

553
01:15:41,041 --> 01:15:42,291
and then run the 11 to

554
01:15:42,291 --> 01:15:43,541
12 shift once it's out.

555
01:15:44,041 --> 01:15:47,000
Is that sort of the flow you like to do?

556
01:15:47,416 --> 01:15:49,291
Or is it just like boom, 10 to 12,

557
01:15:49,291 --> 01:15:50,125
and then you have like

558
01:15:50,125 --> 01:15:52,500
even more commits, I guess.

559
01:15:54,041 --> 01:15:56,375
Yeah, old shifts are always incremental.

560
01:15:56,750 --> 01:15:57,500
And this is kind of

561
01:15:57,500 --> 01:15:59,250
for focus and context.

562
01:15:59,500 --> 01:16:00,250
I mean, if you were on

563
01:16:00,250 --> 01:16:02,000
LayerVille seven, eight, nine,

564
01:16:02,000 --> 01:16:03,875
10, whatever, and you tried

565
01:16:03,875 --> 01:16:05,625
to jump in one shot to 12,

566
01:16:07,291 --> 01:16:08,375
you know, and then there's an error.

567
01:16:09,250 --> 01:16:11,000
Well, where did the error happen?

568
01:16:11,458 --> 01:16:13,583
Did it, where do I go look to get help?

569
01:16:13,625 --> 01:16:14,583
Do I look in the

570
01:16:14,583 --> 01:16:15,833
context of LayerVille 11?

571
01:16:16,041 --> 01:16:18,833
Like how do I refine that search, right?

572
01:16:18,833 --> 01:16:20,791
Or that prompt to like

573
01:16:20,791 --> 01:16:22,958
know what I'm looking at?

574
01:16:22,958 --> 01:16:23,500
I mean, hopefully you

575
01:16:23,500 --> 01:16:24,375
have a good error message,

576
01:16:24,541 --> 01:16:26,750
but I find that the

577
01:16:26,750 --> 01:16:29,708
incremental ones help again

578
01:16:29,708 --> 01:16:31,916
with that context of like, okay, I'm

579
01:16:31,916 --> 01:16:32,958
going from 10 to 11,

580
01:16:33,250 --> 01:16:34,500
and now I got this error.

581
01:16:34,666 --> 01:16:35,666
And it's very, you know,

582
01:16:35,666 --> 01:16:37,041
just throwing on LayerVille 11

583
01:16:37,250 --> 01:16:38,291
and the error is gonna

584
01:16:38,291 --> 01:16:40,000
give you far better results,

585
01:16:40,000 --> 01:16:41,916
far better information if you were to

586
01:16:41,916 --> 01:16:43,000
encounter a problem.

587
01:16:43,791 --> 01:16:44,750
Then, you know, again, if you're trying

588
01:16:44,750 --> 01:16:46,000
to lump some upgrade

589
01:16:46,791 --> 01:16:47,958
several versions, you

590
01:16:47,958 --> 01:16:49,000
kind of just don't even know

591
01:16:49,000 --> 01:16:49,916
where you're aiming if

592
01:16:49,916 --> 01:16:51,000
you run into a problem.

593
01:16:51,000 --> 01:16:53,000
And that alone, that single

594
01:16:53,000 --> 01:16:54,375
error can burn all the time

595
01:16:54,375 --> 01:16:55,041
that you would have spent

596
01:16:55,041 --> 01:16:56,541
running one extra shift, right?

597
01:16:57,333 --> 01:17:00,500
Yeah, that actually brings a question.

598
01:17:00,958 --> 01:17:02,125
This is totally theoretical.

599
01:17:02,708 --> 01:17:04,166
If you're on a Laravel seven app,

600
01:17:05,916 --> 01:17:07,000
Laravel 12's coming out.

601
01:17:07,708 --> 01:17:08,958
I don't, I mean, it

602
01:17:08,958 --> 01:17:10,083
would take you a month

603
01:17:10,541 --> 01:17:12,875
to go through all the code changes

604
01:17:13,125 --> 01:17:14,541
without going through shift.

605
01:17:14,833 --> 01:17:15,583
I mean, like, I don't even

606
01:17:15,583 --> 01:17:16,958
know if that would be fun

607
01:17:16,958 --> 01:17:18,500
or possible without shift.

608
01:17:19,500 --> 01:17:20,291
I think a lot of

609
01:17:20,291 --> 01:17:23,541
people think when they get

610
01:17:23,541 --> 01:17:25,000
that far behind, oh, I'll

611
01:17:25,000 --> 01:17:27,250
just make a LayerVille new

612
01:17:28,375 --> 01:17:30,000
and then copy my code over.

613
01:17:30,250 --> 01:17:31,208
A lot of people think

614
01:17:31,208 --> 01:17:34,166
that's what I can do.

615
01:17:35,000 --> 01:17:36,250
But that completely

616
01:17:36,250 --> 01:17:39,791
dismisses all of the code changes,

617
01:17:40,083 --> 01:17:42,500
like things change, traits change,

618
01:17:42,500 --> 01:17:45,041
facades change, method signatures change.

619
01:17:45,291 --> 01:17:47,000
So really, again, all you're doing is,

620
01:17:47,416 --> 01:17:49,125
sure you have a new LayerVille 12 app,

621
01:17:49,125 --> 01:17:49,958
but you're bringing in

622
01:17:49,958 --> 01:17:51,875
all your legacy code over.

623
01:17:52,333 --> 01:17:52,916
And yeah, it might

624
01:17:52,916 --> 01:17:55,041
run, but the same thing.

625
01:17:55,041 --> 01:17:57,541
Some day when the wheels fall off that,

626
01:17:57,541 --> 01:17:59,125
and they will, some day,

627
01:18:00,250 --> 01:18:01,041
you're gonna have no

628
01:18:01,041 --> 01:18:02,750
context of what broke.

629
01:18:02,750 --> 01:18:05,041
You're gonna have no information

630
01:18:05,458 --> 01:18:05,958
because you're just

631
01:18:05,958 --> 01:18:07,416
gonna think kind of naively,

632
01:18:07,625 --> 01:18:09,000
like, oh, I was running LayerVille 12.

633
01:18:09,125 --> 01:18:09,750
Well, not really.

634
01:18:10,000 --> 01:18:10,750
You were running

635
01:18:10,750 --> 01:18:13,250
LayerVille 12 of a LayerVille seven

636
01:18:13,375 --> 01:18:15,250
code base, you know?

637
01:18:15,750 --> 01:18:18,458
And that's just gonna be a problem, so.

638
01:18:19,875 --> 01:18:21,166
That's very true.

639
01:18:22,375 --> 01:18:25,083
So I guess if you go back in time,

640
01:18:25,500 --> 01:18:28,208
like in the beginning, why did you,

641
01:18:28,625 --> 01:18:31,166
or what just spurred you to be like,

642
01:18:31,166 --> 01:18:32,791
hey, I want to create this thing

643
01:18:32,791 --> 01:18:34,125
that will auto upgrade people,

644
01:18:35,250 --> 01:18:35,791
as far as the

645
01:18:35,791 --> 01:18:36,833
beginning of Flurival Shift?

646
01:18:37,875 --> 01:18:38,208
Sure.

647
01:18:38,875 --> 01:18:40,958
The origin story in a nutshell,

648
01:18:40,958 --> 01:18:42,541
and I think one of my last,

649
01:18:42,541 --> 01:18:44,125
the last kind of series

650
01:18:44,125 --> 01:18:45,750
of our base code podcasts

651
01:18:45,750 --> 01:18:46,916
that I used to do with Jess,

652
01:18:46,916 --> 01:18:49,458
I kind of did a solo series at the end

653
01:18:49,458 --> 01:18:50,625
that went through kind

654
01:18:50,625 --> 01:18:52,041
of the genesis of Shift.

655
01:18:52,208 --> 01:18:53,583
And honestly, it was kind of like a

656
01:18:53,583 --> 01:18:54,875
historical record for me

657
01:18:54,875 --> 01:18:56,250
because I'm going in the

658
01:18:56,250 --> 01:18:57,500
10th year of Shift now,

659
01:18:57,500 --> 01:18:59,000
and I've got kids now,

660
01:18:59,000 --> 01:18:59,916
I don't sleep as much.

661
01:19:00,291 --> 01:19:01,333
Like, I was kind of

662
01:19:01,333 --> 01:19:02,916
forgetting some of the details, right?

663
01:19:02,916 --> 01:19:03,708
I mean, it's been a while.

664
01:19:05,125 --> 01:19:06,625
But the short story is,

665
01:19:07,125 --> 01:19:08,125
I was at a PHP

666
01:19:08,125 --> 01:19:10,416
conference and Taylor was there,

667
01:19:11,416 --> 01:19:12,208
and I gave a talk on

668
01:19:12,208 --> 01:19:13,416
upgrading at the time.

669
01:19:13,416 --> 01:19:14,083
This was, it was

670
01:19:14,083 --> 01:19:16,458
upgrading from Laravel 4.2 to 5,

671
01:19:16,666 --> 01:19:18,791
a big, huge, major release.

672
01:19:19,500 --> 01:19:20,958
And after the talk, I

673
01:19:20,958 --> 01:19:22,291
caught up with Taylor

674
01:19:22,458 --> 01:19:24,000
and I was like, hey, do

675
01:19:24,000 --> 01:19:26,458
you know of any scripts

676
01:19:26,708 --> 01:19:27,916
that help with this?

677
01:19:27,916 --> 01:19:29,750
Or, you know, have you thought about it?

678
01:19:30,125 --> 01:19:31,291
And he was like, you

679
01:19:31,291 --> 01:19:32,208
know, man, a few words.

680
01:19:32,208 --> 01:19:32,583
Of course he was

681
01:19:32,583 --> 01:19:34,166
like, no, but I'd use it.

682
01:19:34,500 --> 01:19:36,416
And I was like, you know, whoa.

683
01:19:36,958 --> 01:19:37,833
Light bulbs, right?

684
01:19:38,000 --> 01:19:39,958
So like that night at the hackathon,

685
01:19:40,250 --> 01:19:41,916
I worked on some scripts

686
01:19:42,875 --> 01:19:44,041
that would automate a

687
01:19:44,041 --> 01:19:44,833
lot of these things, right?

688
01:19:44,833 --> 01:19:45,291
Because again, it was

689
01:19:45,291 --> 01:19:46,458
folder structure moves,

690
01:19:46,458 --> 01:19:48,791
it was files changed, it was, okay,

691
01:19:48,791 --> 01:19:50,083
now controllers extend

692
01:19:50,083 --> 01:19:51,208
this other controller,

693
01:19:51,500 --> 01:19:53,125
okay, now models are name spaced,

694
01:19:53,375 --> 01:19:54,500
like all these things, right?

695
01:19:54,750 --> 01:19:55,833
That could be automated.

696
01:19:56,791 --> 01:19:57,750
And I think it was funny,

697
01:19:57,750 --> 01:19:59,000
he was, as a bit of history,

698
01:19:59,000 --> 01:20:00,750
he was hacking on this

699
01:20:00,750 --> 01:20:01,750
little JavaScript framework

700
01:20:01,875 --> 01:20:03,208
called Vue and trying to

701
01:20:03,208 --> 01:20:04,833
bring it into Laravel 5.1.

702
01:20:05,958 --> 01:20:07,583
And so it was interesting,

703
01:20:07,583 --> 01:20:08,000
because I was kind of

704
01:20:08,000 --> 01:20:09,000
bouncing ideas off of him

705
01:20:09,000 --> 01:20:10,916
and really kind of the rest is history.

706
01:20:10,916 --> 01:20:12,833
From there, he released 5.1 and I

707
01:20:12,833 --> 01:20:14,500
packaged these scripts up

708
01:20:14,500 --> 01:20:15,166
and I put them on this

709
01:20:15,166 --> 01:20:16,750
little website for three bucks.

710
01:20:17,166 --> 01:20:19,333
It was $3, the first shift.

711
01:20:19,708 --> 01:20:20,333
And it was great.

712
01:20:20,583 --> 01:20:21,750
People like, I didn't, I

713
01:20:21,750 --> 01:20:22,583
was new to the community,

714
01:20:22,583 --> 01:20:25,083
but people like Frake and

715
01:20:25,083 --> 01:20:27,166
Jeffrey Way and Taylor himself

716
01:20:27,916 --> 01:20:28,791
were kind of using it

717
01:20:28,791 --> 01:20:29,875
in those first few weeks.

718
01:20:29,875 --> 01:20:30,500
You know, you're watching

719
01:20:30,500 --> 01:20:31,583
the little Stripe emails

720
01:20:32,541 --> 01:20:33,791
and you're seeing these names

721
01:20:33,791 --> 01:20:34,833
and you're learning the community

722
01:20:34,958 --> 01:20:35,708
and you're like, oh my gosh,

723
01:20:36,041 --> 01:20:38,000
that's layer casts, you know?

724
01:20:38,000 --> 01:20:39,291
And I'm getting

725
01:20:39,291 --> 01:20:41,333
feedback and it's just been

726
01:20:41,583 --> 01:20:43,541
that times a million,

727
01:20:43,541 --> 01:20:45,083
you know, since then.

728
01:20:46,250 --> 01:20:47,625
Yeah, that's amazing.

729
01:20:48,166 --> 01:20:49,583
That's sort of the coolest

730
01:20:49,583 --> 01:20:52,041
way products or apps start.

731
01:20:52,041 --> 01:20:52,875
It's just like talking to

732
01:20:52,875 --> 01:20:53,583
somebody and being like,

733
01:20:53,583 --> 01:20:54,875
oh yeah, I think that'd be amazing.

734
01:20:54,875 --> 01:20:55,458
And then you're just like,

735
01:20:55,458 --> 01:20:56,500
okay, I'm just gonna build this.

736
01:20:57,833 --> 01:21:00,083
So to kind of shift gears a little bit

737
01:21:00,541 --> 01:21:03,875
from the page shifts that you run

738
01:21:04,041 --> 01:21:05,291
and basically run your business,

739
01:21:05,500 --> 01:21:07,375
but as a community service,

740
01:21:08,458 --> 01:21:10,875
you send PRs to open source packages.

741
01:21:11,458 --> 01:21:12,500
So that way they can

742
01:21:12,500 --> 01:21:13,833
be up on layer build 12.

743
01:21:15,041 --> 01:21:16,291
At the moment, I guess

744
01:21:16,291 --> 01:21:18,083
what the moment Laravel 12

745
01:21:18,083 --> 01:21:19,791
was out there able to go

746
01:21:19,791 --> 01:21:21,208
ahead and merge your pull request

747
01:21:21,541 --> 01:21:25,000
and be supported on Laravel 12.

748
01:21:26,166 --> 01:21:28,541
Yeah, that's honestly the biggest drag.

749
01:21:28,541 --> 01:21:29,458
And again, going back to

750
01:21:29,458 --> 01:21:30,708
kind of the no breaking changes,

751
01:21:30,708 --> 01:21:31,833
like sure, there might

752
01:21:31,833 --> 01:21:32,833
be no breaking changes

753
01:21:33,000 --> 01:21:33,750
from the framework, but

754
01:21:33,750 --> 01:21:35,458
there's still going to be things

755
01:21:35,666 --> 01:21:38,125
that make your upgrade challenging

756
01:21:38,416 --> 01:21:40,041
or things that you might have to do.

757
01:21:40,041 --> 01:21:42,416
And one of the biggest always has been

758
01:21:43,541 --> 01:21:44,250
third party dependencies.

759
01:21:45,166 --> 01:21:46,500
You know, oh, this one's not

760
01:21:46,500 --> 01:21:47,750
compatible for Laravel 12.

761
01:21:47,750 --> 01:21:48,500
I mean, we've all seen

762
01:21:48,500 --> 01:21:51,291
that huge dump of a composer,

763
01:21:52,000 --> 01:21:53,166
super technical message,

764
01:21:53,166 --> 01:21:54,375
problem one, problem two,

765
01:21:54,375 --> 01:21:55,750
problem three, problem infinity,

766
01:21:56,125 --> 01:21:57,916
like, oh my God, you know,

767
01:21:57,916 --> 01:21:58,916
and it's just like 17

768
01:21:58,916 --> 01:22:01,333
package, illuminate view, you know,

769
01:22:01,458 --> 01:22:02,833
4.7, it's like, I don't

770
01:22:02,833 --> 01:22:03,916
even know what's going on here.

771
01:22:03,916 --> 01:22:06,208
It's just so much information to digest.

772
01:22:07,416 --> 01:22:08,583
So I hope to help people

773
01:22:08,583 --> 01:22:11,291
stay away, you know, from that.

774
01:22:11,291 --> 01:22:12,208
I hope to kind of protect

775
01:22:12,208 --> 01:22:13,458
them from that in a way.

776
01:22:13,791 --> 01:22:15,583
And so over the years

777
01:22:15,583 --> 01:22:16,625
we had this tool Jess

778
01:22:16,625 --> 01:22:18,333
and I worked on a couple of years back,

779
01:22:18,500 --> 01:22:20,458
it's caniupgradelayervel.com

780
01:22:20,458 --> 01:22:21,583
and it just redirects to a

781
01:22:21,583 --> 01:22:23,416
little service within shift.

782
01:22:23,416 --> 01:22:25,500
You can paste in your composer JSON file

783
01:22:25,500 --> 01:22:26,708
and we kind of give you check boxes

784
01:22:26,916 --> 01:22:28,833
of what has compatibility.

785
01:22:30,666 --> 01:22:31,583
But over the time, I

786
01:22:31,583 --> 01:22:32,916
actually started to take

787
01:22:33,000 --> 01:22:34,583
some of that data that, you know,

788
01:22:34,583 --> 01:22:35,541
you're giving us your

789
01:22:35,541 --> 01:22:36,958
list of packages that you use

790
01:22:36,958 --> 01:22:38,500
and we can kind of start to rank them.

791
01:22:38,500 --> 01:22:39,708
I was already doing this anyways,

792
01:22:40,083 --> 01:22:41,625
when you ran shift to know,

793
01:22:42,291 --> 01:22:43,375
well, what are the big packages

794
01:22:43,375 --> 01:22:45,000
like layervel collective HTML?

795
01:22:45,000 --> 01:22:46,708
It used to be a huge package.

796
01:22:46,708 --> 01:22:49,125
Every application used this thing.

797
01:22:49,833 --> 01:22:50,750
And because of that, it

798
01:22:50,750 --> 01:22:52,375
helped me make shift better

799
01:22:52,375 --> 01:22:53,708
because now I know, okay,

800
01:22:54,041 --> 01:22:55,541
if there was a big breaking change in

801
01:22:55,541 --> 01:22:56,250
layervel collective,

802
01:22:56,250 --> 01:22:57,541
I'm gonna go ahead and do it too.

803
01:22:57,833 --> 01:23:00,625
Even though it's not layervel directly

804
01:23:00,625 --> 01:23:02,083
like framework related change,

805
01:23:02,833 --> 01:23:04,500
I'm going to go ahead and put this in

806
01:23:04,500 --> 01:23:05,750
whatever shift it was,

807
01:23:06,166 --> 01:23:06,833
just cause again, it

808
01:23:06,833 --> 01:23:08,000
makes developer life's easier.

809
01:23:08,416 --> 01:23:10,291
So this is all an effort again,

810
01:23:10,291 --> 01:23:12,333
to kind of just make that

811
01:23:12,333 --> 01:23:14,125
upgrade process seamless

812
01:23:14,125 --> 01:23:15,166
cause there's always

813
01:23:15,166 --> 01:23:16,500
stuff you have to do.

814
01:23:16,500 --> 01:23:18,208
And if I can, there's always something

815
01:23:18,208 --> 01:23:18,833
that's going to be

816
01:23:18,833 --> 01:23:20,416
automated or automatable.

817
01:23:21,125 --> 01:23:21,875
And this is kind of the

818
01:23:21,875 --> 01:23:23,500
last frontier, if you will.

819
01:23:23,500 --> 01:23:25,208
If I can truly even

820
01:23:25,208 --> 01:23:26,541
at a third party level

821
01:23:26,875 --> 01:23:27,458
start to bump

822
01:23:27,458 --> 01:23:29,000
dependencies or let you know,

823
01:23:29,000 --> 01:23:29,791
okay, this one has

824
01:23:29,791 --> 01:23:31,125
their own upgrade guide,

825
01:23:31,583 --> 01:23:33,125
and who knows maybe someday

826
01:23:33,125 --> 01:23:34,583
even start to automate pieces

827
01:23:34,583 --> 01:23:38,166
of that for very popular packages.

828
01:23:39,041 --> 01:23:42,083
That would be ideal.

829
01:23:42,083 --> 01:23:43,000
Cause then you can truly

830
01:23:43,000 --> 01:23:44,833
run shift, you can merge,

831
01:23:45,750 --> 01:23:47,708
and it's just all kind of seamless.

832
01:23:48,416 --> 01:23:50,541
So helping the community get there,

833
01:23:50,541 --> 01:23:51,458
helping the community not

834
01:23:51,458 --> 01:23:54,416
have that drag is important,

835
01:23:54,958 --> 01:23:56,625
not just for shift, but

836
01:23:56,625 --> 01:23:57,666
hopefully, you know, layervel

837
01:23:57,666 --> 01:23:59,041
and the community at large.

838
01:23:59,458 --> 01:24:01,916
I mean, you know, by comparison,

839
01:24:01,916 --> 01:24:03,083
look at communities like

840
01:24:03,083 --> 01:24:04,250
WordPress, for example,

841
01:24:04,500 --> 01:24:06,541
and avoiding all the WP

842
01:24:06,541 --> 01:24:07,583
drama and all that stuff.

843
01:24:07,833 --> 01:24:11,208
Like those communities are in a way,

844
01:24:12,500 --> 01:24:15,208
you know, burdened by the

845
01:24:15,208 --> 01:24:18,833
kind of legacy of the code,

846
01:24:19,666 --> 01:24:20,416
again, cause of their

847
01:24:20,416 --> 01:24:22,208
sheer size of that community.

848
01:24:22,916 --> 01:24:23,666
You know, you probably

849
01:24:23,666 --> 01:24:25,625
have sites running WordPress

850
01:24:25,958 --> 01:24:28,250
three something still, right?

851
01:24:28,916 --> 01:24:30,125
And I don't know the latest greatest

852
01:24:30,125 --> 01:24:31,041
version of WordPress,

853
01:24:31,041 --> 01:24:31,958
but the point is that

854
01:24:31,958 --> 01:24:33,583
WordPress themselves

855
01:24:33,916 --> 01:24:34,750
doesn't want to

856
01:24:34,750 --> 01:24:36,375
alienate that WordPress site

857
01:24:36,375 --> 01:24:38,750
still running version three, right?

858
01:24:39,250 --> 01:24:42,166
So like they can't move as quick.

859
01:24:42,583 --> 01:24:44,000
And I don't think layervel would ever

860
01:24:44,000 --> 01:24:44,708
want to be in a place

861
01:24:44,875 --> 01:24:45,958
where they can't move as

862
01:24:45,958 --> 01:24:47,916
quick as they are, right?

863
01:24:47,916 --> 01:24:49,333
That's kind of a signature,

864
01:24:49,333 --> 01:24:50,416
that's kind of a, again,

865
01:24:50,416 --> 01:24:51,833
a trait of the community

866
01:24:52,083 --> 01:24:53,958
is kind of moving quick

867
01:24:53,958 --> 01:24:55,000
and adopting new features

868
01:24:55,083 --> 01:24:56,000
and just shipping,

869
01:24:56,000 --> 01:24:57,000
shipping, shipping, right?

870
01:24:57,708 --> 01:24:58,625
You can't really ship if

871
01:24:58,625 --> 01:24:59,750
everybody's still running

872
01:24:59,958 --> 01:25:01,958
layervel four two and no packages

873
01:25:02,083 --> 01:25:04,125
are layervel 12 compatible, right?

874
01:25:04,125 --> 01:25:06,041
Like it just, that's where

875
01:25:06,041 --> 01:25:07,250
I tease for another nickname

876
01:25:07,250 --> 01:25:09,250
and kind of call myself the garbage man.

877
01:25:09,250 --> 01:25:11,375
Like I'm taking out the trash,

878
01:25:11,583 --> 01:25:13,666
so our city stays clean, right?

879
01:25:13,666 --> 01:25:15,125
Our community stays clean.

880
01:25:15,791 --> 01:25:17,458
We don't have those as

881
01:25:17,458 --> 01:25:19,083
many of those four two apps

882
01:25:19,208 --> 01:25:20,208
floating out there that

883
01:25:20,208 --> 01:25:21,791
can't do all the cool.

884
01:25:21,791 --> 01:25:22,500
It doesn't matter all the

885
01:25:22,500 --> 01:25:23,458
cool stuff you talk about,

886
01:25:23,458 --> 01:25:25,416
if no one can do it, no

887
01:25:25,416 --> 01:25:26,541
one can run it, right?

888
01:25:27,875 --> 01:25:28,083
Exactly.

889
01:25:28,583 --> 01:25:31,166
And two, I mean, just, you know,

890
01:25:32,416 --> 01:25:33,833
being around a long time,

891
01:25:34,250 --> 01:25:35,666
there's been so many releases

892
01:25:35,875 --> 01:25:37,958
where like I have this obscure package

893
01:25:37,958 --> 01:25:39,458
and it's like, it's just

894
01:25:39,458 --> 01:25:40,500
forgotten about, you know,

895
01:25:40,500 --> 01:25:41,583
GitHub and you like go and

896
01:25:41,583 --> 01:25:42,416
make a comment and be like,

897
01:25:42,416 --> 01:25:43,541
"Hey, can you bump the

898
01:25:43,541 --> 01:25:45,458
version dependency to whatever,

899
01:25:45,625 --> 01:25:46,791
"illuminate 10 or something?"

900
01:25:47,125 --> 01:25:47,375
Yeah.

901
01:25:47,375 --> 01:25:48,833
And it's just dead silent,

902
01:25:49,000 --> 01:25:49,875
you're like here to nothing.

903
01:25:49,875 --> 01:25:51,416
And it's like, well, I can't update

904
01:25:51,541 --> 01:25:52,458
until we get this fixed.

905
01:25:52,458 --> 01:25:52,875
And then it's like,

906
01:25:52,875 --> 01:25:54,083
oh, well, now I gotta go

907
01:25:55,041 --> 01:25:56,916
figure out how to like run

908
01:25:56,916 --> 01:25:58,708
my own fork of this package.

909
01:25:58,958 --> 01:25:59,166
Yeah.

910
01:25:59,583 --> 01:26:00,916
It's just the whole thing.

911
01:26:00,916 --> 01:26:02,041
And so, you know, I

912
01:26:02,041 --> 01:26:03,750
greatly appreciate you doing this

913
01:26:03,750 --> 01:26:05,875
as a community service on that angle,

914
01:26:05,875 --> 01:26:06,708
because I think it is

915
01:26:06,708 --> 01:26:09,916
hugely beneficial for maintainers

916
01:26:09,916 --> 01:26:10,875
and for the people that are

917
01:26:10,875 --> 01:26:12,166
just waiting on these updates

918
01:26:12,166 --> 01:26:12,958
that they can't get.

919
01:26:13,583 --> 01:26:14,333
Yeah, yeah.

920
01:26:14,541 --> 01:26:15,958
Again, I just think it's an all around

921
01:26:15,958 --> 01:26:17,166
good community service.

922
01:26:17,375 --> 01:26:19,333
Like sure, you can peg it as marketing

923
01:26:19,333 --> 01:26:20,333
for shift or whatever,

924
01:26:20,500 --> 01:26:22,583
but I'm not making anything

925
01:26:22,583 --> 01:26:24,875
directly off of those PRs.

926
01:26:24,875 --> 01:26:27,041
They just truly help the community.

927
01:26:27,333 --> 01:26:28,000
They help me.

928
01:26:28,333 --> 01:26:29,375
I mean, just like you, I

929
01:26:29,375 --> 01:26:31,333
use third party packages that,

930
01:26:31,750 --> 01:26:33,250
you know, Vimeo is a prime example.

931
01:26:33,666 --> 01:26:34,833
I think Ben and I

932
01:26:34,833 --> 01:26:35,791
always tease about this,

933
01:26:36,166 --> 01:26:37,708
that like, you know,

934
01:26:38,000 --> 01:26:39,416
that package has never,

935
01:26:40,000 --> 01:26:43,000
it'll be like August and it still is not

936
01:26:43,083 --> 01:26:44,583
Laravel 12 compatible, you know?

937
01:26:44,583 --> 01:26:46,083
It's been six months since the release.

938
01:26:47,000 --> 01:26:48,000
But you know, day one,

939
01:26:48,375 --> 01:26:50,000
you can at least see the PR from shift.

940
01:26:50,166 --> 01:26:52,000
And a lot of times it is just simply a

941
01:26:52,000 --> 01:26:53,250
composer dependency bump.

942
01:26:53,500 --> 01:26:54,083
You know, there's not,

943
01:26:54,708 --> 01:26:56,291
again, no breaking changes.

944
01:26:56,375 --> 01:26:57,458
There's not anything that

945
01:26:57,458 --> 01:26:59,000
you need to do theoretically

946
01:26:59,208 --> 01:27:01,083
for Laravel 12 other than just make sure

947
01:27:01,083 --> 01:27:04,041
your composer compatibility exists.

948
01:27:07,041 --> 01:27:09,708
Yeah, so here's a question.

949
01:27:10,000 --> 01:27:11,833
So I did a little AMA on

950
01:27:11,833 --> 01:27:13,041
Instagram where I was just like,

951
01:27:13,041 --> 01:27:14,666
hey, I'm going to interview, you know,

952
01:27:15,083 --> 01:27:16,333
JMac from Laravel

953
01:27:16,333 --> 01:27:17,333
shift, you got any questions?

954
01:27:18,333 --> 01:27:19,333
So one of the questions

955
01:27:19,333 --> 01:27:21,541
were is does Laravel shift,

956
01:27:23,041 --> 01:27:24,708
let me see if I can speak, does Laravel

957
01:27:24,708 --> 01:27:27,541
shift support complex updates?

958
01:27:28,041 --> 01:27:29,333
And there's they didn't

959
01:27:29,333 --> 01:27:30,416
give really in context,

960
01:27:30,500 --> 01:27:32,416
but I'm assuming like one of these,

961
01:27:33,625 --> 01:27:35,666
you know, crazy apps that people just

962
01:27:35,666 --> 01:27:37,041
built back in the day

963
01:27:37,041 --> 01:27:38,166
that has all this crazy stuff.

964
01:27:39,125 --> 01:27:40,250
Does it have support for

965
01:27:40,250 --> 01:27:43,333
like out of the box things or is

966
01:27:43,333 --> 01:27:45,125
or do you take that

967
01:27:45,125 --> 01:27:46,041
question a different way?

968
01:27:46,083 --> 01:27:47,500
Maybe that's the maybe I

969
01:27:47,500 --> 01:27:48,833
should ask you your opinion on it.

970
01:27:49,666 --> 01:27:50,916
There's probably a lot of different ways

971
01:27:50,916 --> 01:27:52,500
you could read into complex.

972
01:27:53,000 --> 01:27:56,833
My guess is probably the way in which

973
01:27:56,833 --> 01:27:58,958
they they're structuring the app.

974
01:27:59,250 --> 01:28:00,958
Right. Maybe maybe they're doing some

975
01:28:00,958 --> 01:28:03,000
quote unquote unconventional things.

976
01:28:03,125 --> 01:28:06,333
Right. So I think historically,

977
01:28:07,125 --> 01:28:09,083
there might have been more truth to the

978
01:28:09,083 --> 01:28:10,791
fact that if you use,

979
01:28:10,791 --> 01:28:12,083
if you followed Laravel conventions,

980
01:28:13,083 --> 01:28:14,500
that shift is for

981
01:28:14,500 --> 01:28:15,791
those conventional apps.

982
01:28:16,291 --> 01:28:18,125
I think that might have used to be true,

983
01:28:18,375 --> 01:28:21,583
like early Laravel 5 versions,

984
01:28:22,208 --> 01:28:25,875
but probably around 5.6, 5.7,

985
01:28:26,833 --> 01:28:30,875
I started switching to more static

986
01:28:30,875 --> 01:28:34,125
analysis inside of the shift,

987
01:28:34,125 --> 01:28:35,416
you know, what I call the engine.

988
01:28:36,666 --> 01:28:39,500
And once I did that, it really didn't

989
01:28:39,500 --> 01:28:40,875
matter what conventions you follow

990
01:28:41,000 --> 01:28:42,083
because I'm really just

991
01:28:42,083 --> 01:28:44,291
parsing PHP at that point.

992
01:28:44,291 --> 01:28:45,333
I'm not looking for like

993
01:28:45,333 --> 01:28:47,958
Laravel syntax per se, right?

994
01:28:48,458 --> 01:28:51,041
I'm just, hey, if you've got X method in

995
01:28:51,041 --> 01:28:52,625
your abstract syntax tree,

996
01:28:52,625 --> 01:28:54,458
like I'm going to do something with it.

997
01:28:55,250 --> 01:28:57,000
And so at that point shift became much

998
01:28:57,000 --> 01:28:59,750
more robust for complex applications

999
01:28:59,750 --> 01:29:01,833
or applications that are unconventional.

1000
01:29:02,333 --> 01:29:03,916
Like if you mean complex in the sheer

1001
01:29:03,916 --> 01:29:07,000
size of code shifts a computer,

1002
01:29:07,000 --> 01:29:07,916
it doesn't matter.

1003
01:29:07,958 --> 01:29:09,541
It doesn't matter if it's a hundred

1004
01:29:09,541 --> 01:29:12,083
thousand files or 10 files in your app.

1005
01:29:12,083 --> 01:29:13,666
It doesn't matter if you have 200

1006
01:29:13,666 --> 01:29:15,000
controllers or 300

1007
01:29:15,000 --> 01:29:16,083
models, it doesn't matter.

1008
01:29:16,416 --> 01:29:17,291
It might take five or

1009
01:29:17,291 --> 01:29:18,541
six more seconds to run,

1010
01:29:18,541 --> 01:29:20,958
but as far as the automation itself,

1011
01:29:20,958 --> 01:29:22,958
it is not more complex just

1012
01:29:22,958 --> 01:29:24,208
because your app is large.

1013
01:29:25,208 --> 01:29:26,000
So I think complex apps

1014
01:29:26,000 --> 01:29:27,291
probably means, you know,

1015
01:29:27,958 --> 01:29:29,583
maybe you have your own namespaces,

1016
01:29:29,875 --> 01:29:31,166
you've subnamespace things,

1017
01:29:31,583 --> 01:29:32,500
you know, maybe you're

1018
01:29:32,500 --> 01:29:34,125
following like a modular design.

1019
01:29:35,125 --> 01:29:36,958
For the most part shift is going to

1020
01:29:36,958 --> 01:29:39,416
handle those without any problem.

1021
01:29:39,916 --> 01:29:41,666
I think the only area where it gets,

1022
01:29:42,291 --> 01:29:43,041
where it might get a

1023
01:29:43,041 --> 01:29:45,500
little funny is, again,

1024
01:29:45,708 --> 01:29:47,583
if you're following a modular

1025
01:29:47,583 --> 01:29:50,541
design with a very opinionated,

1026
01:29:50,916 --> 01:29:51,708
you know, there's some third party

1027
01:29:51,708 --> 01:29:54,291
packages that do modular domain design

1028
01:29:54,291 --> 01:29:55,500
and they're very opinionated.

1029
01:29:56,291 --> 01:29:57,041
The way in which they

1030
01:29:57,041 --> 01:29:59,041
might structure that code,

1031
01:29:59,041 --> 01:30:00,000
they're probably things

1032
01:30:00,000 --> 01:30:01,083
that shift could miss,

1033
01:30:01,125 --> 01:30:02,458
but the argument would be that,

1034
01:30:03,125 --> 01:30:03,916
well, that's the upgrade

1035
01:30:03,916 --> 01:30:04,833
guide for that package.

1036
01:30:05,083 --> 01:30:07,041
Like you chose to use that package and

1037
01:30:07,041 --> 01:30:09,000
therefore you're choosing to take on,

1038
01:30:09,708 --> 01:30:11,625
you know, you made a trade off to take on

1039
01:30:11,625 --> 01:30:14,791
that upgrade framework as well, right?

1040
01:30:14,791 --> 01:30:15,833
Like you're kind of using a micro

1041
01:30:15,833 --> 01:30:17,250
framework in that scenario.

1042
01:30:17,250 --> 01:30:19,500
So you have to go upgrade it on your own.

1043
01:30:19,500 --> 01:30:20,875
I didn't make a shift for that thing.

1044
01:30:22,000 --> 01:30:24,708
So yeah, that makes sense.

1045
01:30:24,708 --> 01:30:27,333
Yeah, the I'm always curious to like,

1046
01:30:28,250 --> 01:30:30,666
when I think complex, I think of like the

1047
01:30:30,666 --> 01:30:32,916
modules like you alluded to,

1048
01:30:32,916 --> 01:30:34,541
but I'm a, you know, with there's so many

1049
01:30:34,541 --> 01:30:35,416
little apps out there,

1050
01:30:35,416 --> 01:30:37,250
I'm sure like you've seen some of the

1051
01:30:37,250 --> 01:30:39,583
craziest stuff that's been created.

1052
01:30:40,166 --> 01:30:42,083
And modules is probably not the craziest.

1053
01:30:42,875 --> 01:30:44,000
No, no.

1054
01:30:44,791 --> 01:30:45,958
Yeah, I mean, if you're if you mean

1055
01:30:45,958 --> 01:30:48,250
complexes and you don't use eloquent

1056
01:30:48,250 --> 01:30:50,916
and you use doctrine directly, yeah, I

1057
01:30:50,916 --> 01:30:52,666
probably can't help you too much there.

1058
01:30:52,666 --> 01:30:52,875
Sorry.

1059
01:30:53,083 --> 01:30:54,791
So there are boundaries for sure.

1060
01:30:55,291 --> 01:30:58,208
But yeah, if you if you do things mostly

1061
01:30:58,208 --> 01:31:00,458
conventional and, and, you know,

1062
01:31:01,041 --> 01:31:02,666
let you're not using any kind of against

1063
01:31:02,666 --> 01:31:05,541
sub package that has its own conventions

1064
01:31:05,541 --> 01:31:06,833
that if kind of

1065
01:31:06,833 --> 01:31:07,916
exists in your application,

1066
01:31:08,416 --> 01:31:10,875
I think that, you know, shift shift is

1067
01:31:10,875 --> 01:31:12,125
going to have you 100%.

1068
01:31:12,458 --> 01:31:15,541
But yeah, and the other thing to you to

1069
01:31:15,541 --> 01:31:16,500
the point that you said,

1070
01:31:16,500 --> 01:31:20,250
and again, the whole thing of 10 years

1071
01:31:20,250 --> 01:31:22,041
and the upgrades and the context,

1072
01:31:22,708 --> 01:31:24,666
you know, I've answered

1073
01:31:24,666 --> 01:31:27,291
thousands of emails that have,

1074
01:31:27,625 --> 01:31:29,000
oh, well shifted great,

1075
01:31:29,000 --> 01:31:30,500
but it missed this, right?

1076
01:31:30,500 --> 01:31:31,291
It missed this little,

1077
01:31:31,291 --> 01:31:32,000
here's the little myth,

1078
01:31:32,000 --> 01:31:33,375
because every everyone that runs a shift,

1079
01:31:33,375 --> 01:31:34,291
especially the new ones,

1080
01:31:34,625 --> 01:31:35,833
I have a follow up email

1081
01:31:35,833 --> 01:31:36,833
and I say, hey, how'd it go?

1082
01:31:37,125 --> 01:31:38,875
Did you have to make any manual changes?

1083
01:31:39,083 --> 01:31:40,708
I read every single one of those.

1084
01:31:40,708 --> 01:31:42,000
I've done that for 10 years.

1085
01:31:42,291 --> 01:31:47,125
So the the depth that shift can go to

1086
01:31:47,125 --> 01:31:49,791
make, you know, these changes,

1087
01:31:49,791 --> 01:31:50,916
it's not again, it's not

1088
01:31:50,916 --> 01:31:51,916
just the upgrade guide.

1089
01:31:51,916 --> 01:31:54,083
It's the upgrade guide plus 10,000 of

1090
01:31:54,083 --> 01:31:55,000
your fellow developers

1091
01:31:55,000 --> 01:31:57,916
that are giving me feedback and saying,

1092
01:31:57,916 --> 01:31:59,333
Oh, this is good, but

1093
01:31:59,333 --> 01:32:00,291
here's this other change.

1094
01:32:00,291 --> 01:32:02,166
It's not documented, but it affected us.

1095
01:32:03,250 --> 01:32:04,416
Add automation for it, add

1096
01:32:04,416 --> 01:32:05,875
a PR comment, add something,

1097
01:32:05,875 --> 01:32:07,541
something's going to be in shift that's

1098
01:32:07,541 --> 01:32:08,291
going to let you know.

1099
01:32:08,541 --> 01:32:10,958
So sure, while something maybe wasn't a

1100
01:32:10,958 --> 01:32:12,500
breaking change or even documented,

1101
01:32:12,916 --> 01:32:13,875
shift is probably still

1102
01:32:13,875 --> 01:32:14,750
going to sniff that out,

1103
01:32:14,750 --> 01:32:17,041
or it's still going to do that for you.

1104
01:32:17,041 --> 01:32:18,250
And you'll, hopefully,

1105
01:32:18,250 --> 01:32:19,500
you're never the wiser, right?

1106
01:32:19,500 --> 01:32:19,958
Because that's the whole

1107
01:32:19,958 --> 01:32:20,875
point, just make it easy.

1108
01:32:21,333 --> 01:32:22,250
But it's in there.

1109
01:32:22,625 --> 01:32:23,541
That domain knowledge

1110
01:32:23,541 --> 01:32:26,333
is it's all right here.

1111
01:32:26,333 --> 01:32:28,375
I love that.

1112
01:32:29,250 --> 01:32:33,916
Yeah, it's one of those under the radar

1113
01:32:33,916 --> 01:32:37,000
services that I think is unique to

1114
01:32:37,000 --> 01:32:39,000
Laravel that a lot of other

1115
01:32:39,000 --> 01:32:40,083
communities do not have.

1116
01:32:40,500 --> 01:32:43,375
And for me, it's just like, it's like the

1117
01:32:43,375 --> 01:32:45,666
perfect add on to a framework.

1118
01:32:45,916 --> 01:32:47,291
It's like, this is this is great.

1119
01:32:48,541 --> 01:32:49,333
And that's that track.

1120
01:32:49,625 --> 01:32:50,625
I appreciate you doing it.

1121
01:32:50,625 --> 01:32:50,833
Yeah.

1122
01:32:51,041 --> 01:32:51,333
Yeah.

1123
01:32:51,583 --> 01:32:54,250
And no, I appreciate it too, because I

1124
01:32:54,250 --> 01:32:56,291
think that's where I take a

1125
01:32:56,291 --> 01:32:57,916
little bit of that self-pride.

1126
01:32:57,916 --> 01:32:59,958
Again, I joke and say garbage man, but

1127
01:32:59,958 --> 01:33:01,500
those other communities,

1128
01:33:01,916 --> 01:33:03,625
they might have this drag that I'm

1129
01:33:03,625 --> 01:33:04,583
talking about because

1130
01:33:04,583 --> 01:33:07,041
this service is missing.

1131
01:33:07,041 --> 01:33:10,000
And so I'm glad to have made it and to

1132
01:33:10,000 --> 01:33:11,916
offer it if that's what it's doing.

1133
01:33:11,916 --> 01:33:12,500
Because again, that was

1134
01:33:12,500 --> 01:33:13,833
always kind of the sub-goal.

1135
01:33:13,833 --> 01:33:14,875
Sure, I needed to use this

1136
01:33:14,875 --> 01:33:16,458
myself way back in the day.

1137
01:33:16,458 --> 01:33:18,666
And sure, Taylor gave me

1138
01:33:18,666 --> 01:33:19,750
some motivational words.

1139
01:33:19,916 --> 01:33:23,250
But the fact that it's still here is

1140
01:33:23,250 --> 01:33:26,000
because it's bringing that value.

1141
01:33:26,000 --> 01:33:27,375
And again, there's always going to be

1142
01:33:27,375 --> 01:33:30,708
changes to make in every application.

1143
01:33:31,416 --> 01:33:34,375
And I'm glad that the community sees and

1144
01:33:34,375 --> 01:33:36,208
appreciates the value of that.

1145
01:33:36,208 --> 01:33:37,000
And I hope that it helps

1146
01:33:37,000 --> 01:33:39,208
keep Laravel charging ahead.

1147
01:33:39,875 --> 01:33:40,041
Right.

1148
01:33:41,625 --> 01:33:41,958
For sure.

1149
01:33:42,208 --> 01:33:42,541
For sure.

1150
01:33:44,416 --> 01:33:46,250
As far as my questions, you

1151
01:33:46,250 --> 01:33:47,666
have answered all of them.

1152
01:33:48,250 --> 01:33:48,458
Thanks.

1153
01:33:48,875 --> 01:33:50,958
Did I miss anything you want to talk

1154
01:33:50,958 --> 01:33:52,416
about while we're on here?

1155
01:33:54,166 --> 01:33:54,916
I don't think so.

1156
01:33:54,916 --> 01:33:57,125
You know, again, I'm looking forward to

1157
01:33:57,125 --> 01:33:58,166
the Laravel 12 shift,

1158
01:33:58,166 --> 01:33:59,375
not just because the

1159
01:33:59,375 --> 01:34:02,333
release date is soon.

1160
01:34:03,041 --> 01:34:05,291
You know, I kind of start to breathe easy

1161
01:34:05,291 --> 01:34:07,833
after the Litterville 12 shift is done.

1162
01:34:08,375 --> 01:34:09,750
But also so many other things that,

1163
01:34:09,750 --> 01:34:10,625
again, Litterville is just

1164
01:34:10,625 --> 01:34:11,750
shipping, shipping, shipping.

1165
01:34:12,083 --> 01:34:12,583
So many other things.

1166
01:34:12,791 --> 01:34:14,500
Clouds coming out, the new starter kits.

1167
01:34:15,083 --> 01:34:15,875
And maybe there's

1168
01:34:15,875 --> 01:34:17,333
opportunity there in the starter kits.

1169
01:34:17,375 --> 01:34:19,333
Maybe there's a shift for old starter

1170
01:34:19,333 --> 01:34:20,333
kits to get you into

1171
01:34:20,333 --> 01:34:21,333
the new starter kits.

1172
01:34:21,333 --> 01:34:23,583
You know, so there's so many things that

1173
01:34:23,583 --> 01:34:24,708
shift is always going to

1174
01:34:24,708 --> 01:34:25,875
be able to look at that,

1175
01:34:25,875 --> 01:34:29,000
even if, you know, there just truly was

1176
01:34:29,000 --> 01:34:32,000
some kind of seamless, beautiful upgrade

1177
01:34:32,000 --> 01:34:33,416
built into Litterville.

1178
01:34:34,958 --> 01:34:37,333
You know, I think shift would still have

1179
01:34:37,333 --> 01:34:40,208
a place, hopefully within the community.

1180
01:34:40,541 --> 01:34:42,875
But I'm looking forward to making a lot

1181
01:34:42,875 --> 01:34:43,458
of like the

1182
01:34:43,458 --> 01:34:44,583
Litterville 12 shift is actually

1183
01:34:44,791 --> 01:34:46,875
pretty big for what I've built so far.

1184
01:34:46,916 --> 01:34:47,833
I'll probably have a

1185
01:34:47,833 --> 01:34:49,750
pre-release early next week.

1186
01:34:49,750 --> 01:34:51,791
I like to have a pre-release to let those

1187
01:34:51,791 --> 01:34:54,250
early adopters test shift,

1188
01:34:54,250 --> 01:34:55,500
but also Litterville 12, right?

1189
01:34:55,958 --> 01:34:57,208
Like, you know, get more people maybe

1190
01:34:57,208 --> 01:34:58,541
using it before it's released.

1191
01:35:00,291 --> 01:35:01,625
You know, I'm excited for the automation.

1192
01:35:01,625 --> 01:35:02,416
And I've done a lot.

1193
01:35:02,791 --> 01:35:04,458
I've been able to focus a lot more on the

1194
01:35:04,458 --> 01:35:07,750
conventional refactors this time around.

1195
01:35:07,750 --> 01:35:09,875
I think the people that stick around and

1196
01:35:09,875 --> 01:35:11,125
use the Laravel 12

1197
01:35:11,125 --> 01:35:12,125
shift are going to be surprised

1198
01:35:12,125 --> 01:35:14,125
at just like you were with Laravel 11

1199
01:35:14,125 --> 01:35:15,666
on the stuff that comes across.

1200
01:35:16,500 --> 01:35:18,250
It's always going above and beyond.

1201
01:35:19,416 --> 01:35:20,000
And it's definitely

1202
01:35:20,000 --> 01:35:20,875
going to do that this time.

1203
01:35:22,416 --> 01:35:24,166
Yeah. Well, yeah.

1204
01:35:25,458 --> 01:35:27,750
To me, it too, this sort of comes back to

1205
01:35:27,750 --> 01:35:28,875
like you said about WordPress.

1206
01:35:28,875 --> 01:35:29,625
Like if you have WordPress

1207
01:35:29,625 --> 01:35:31,291
version two, it might still run.

1208
01:35:31,958 --> 01:35:35,333
But you're missing out on all the new

1209
01:35:35,333 --> 01:35:37,041
features that's been launched since then.

1210
01:35:37,541 --> 01:35:39,291
And, you know, I don't even know if

1211
01:35:39,291 --> 01:35:40,583
there's an easy way to upgrade WordPress.

1212
01:35:41,083 --> 01:35:42,250
I assume there might be.

1213
01:35:42,250 --> 01:35:42,708
I don't know.

1214
01:35:44,625 --> 01:35:45,708
But yeah, that's just wild.

1215
01:35:46,791 --> 01:35:47,958
But yeah, man, well, I want

1216
01:35:47,958 --> 01:35:49,250
to say thank you for coming on,

1217
01:35:49,250 --> 01:35:50,833
spending some time with us and going

1218
01:35:50,833 --> 01:35:51,750
through all the stuff.

1219
01:35:51,750 --> 01:35:52,250
You know, I'm really

1220
01:35:52,250 --> 01:35:53,166
looking forward to Litterville 12,

1221
01:35:53,541 --> 01:35:55,541
Litterville shift, seeing you at Laricon.

1222
01:35:56,041 --> 01:35:56,375
Oh, yeah.

1223
01:35:56,958 --> 01:35:58,291
All right. Good, good, good.

1224
01:35:58,625 --> 01:35:59,166
Yeah, I'll be there.

1225
01:35:59,208 --> 01:36:01,166
I already got my ticket, but I submitted

1226
01:36:01,166 --> 01:36:02,666
a talk or two this time around.

1227
01:36:02,916 --> 01:36:05,583
So I'm hoping maybe I can land on stage.

1228
01:36:05,583 --> 01:36:06,708
But the team is so

1229
01:36:06,708 --> 01:36:08,791
large now that I don't know.

1230
01:36:08,791 --> 01:36:10,125
That's some tough competition.

1231
01:36:10,333 --> 01:36:10,875
We'll see.

1232
01:36:10,875 --> 01:36:12,250
But I'd love to be able to get on stage

1233
01:36:12,250 --> 01:36:13,333
again someday before

1234
01:36:13,333 --> 01:36:14,916
I'm too old man, JMac.

1235
01:36:15,125 --> 01:36:15,458
We'll see.

1236
01:36:16,416 --> 01:36:18,666
That sounds good.

1237
01:36:18,666 --> 01:36:19,416
Well, thank you, JMac, for

1238
01:36:19,416 --> 01:36:20,541
coming and being on the show.

1239
01:36:21,916 --> 01:36:22,291
Cool, man.

1240
01:36:22,666 --> 01:36:23,041
See you.