1
01:00:00,000 --> 01:00:02,250
So today, welcome back to the Laravel

2
01:00:02,250 --> 01:00:03,291
News Creator Series.

3
01:00:03,833 --> 01:00:06,000
In this episode, I have with me Len

4
01:00:06,000 --> 01:00:07,416
Woodward, who is the

5
01:00:07,416 --> 01:00:09,375
creator of quite a few projects,

6
01:00:09,625 --> 01:00:10,500
but today I wanted to

7
01:00:10,500 --> 01:00:11,625
talk to him about whiskey.

8
01:00:12,416 --> 01:00:15,625
So Len, as far as introduction,

9
01:00:16,083 --> 01:00:16,666
anything, any other

10
01:00:16,666 --> 01:00:17,583
projects you want to mention are

11
01:00:17,583 --> 01:00:19,208
off the top of your head that you're

12
01:00:19,208 --> 01:00:20,000
doing a lot of work

13
01:00:20,000 --> 01:00:21,666
with that is not whiskey?

14
01:00:22,875 --> 01:00:24,208
Yeah, I got a couple.

15
01:00:24,875 --> 01:00:26,208
So one that got a little bit of traction

16
01:00:26,208 --> 01:00:27,541
on Twitter a couple of

17
01:00:27,541 --> 01:00:29,458
weeks ago was Conductor,

18
01:00:29,583 --> 01:00:32,416
which is basically NPX, but for PHP.

19
01:00:33,166 --> 01:00:35,916
So it allows you to run composer packages

20
01:00:35,916 --> 01:00:37,125
in an ephemeral way.

21
01:00:37,541 --> 01:00:39,458
So if you've got stuff like just one

22
01:00:39,458 --> 01:00:41,500
rector or a shift from

23
01:00:41,500 --> 01:00:42,166
the Laravel shift that

24
01:00:42,166 --> 01:00:45,000
you want to run, you can do that on the

25
01:00:45,000 --> 01:00:46,291
CLI and it doesn't

26
01:00:46,291 --> 01:00:47,583
necessarily need to be installed.

27
01:00:48,583 --> 01:00:50,541
I'm putting a lot of work into community

28
01:00:50,541 --> 01:00:54,458
prompts, which is an extension of

29
01:00:54,458 --> 01:00:55,166
Laravel prompts,

30
01:00:55,375 --> 01:00:56,583
which allows you to do

31
01:00:56,583 --> 01:00:58,000
some interesting things.

32
01:00:59,083 --> 01:01:00,875
I've worked on an async prompt that lets

33
01:01:00,875 --> 01:01:03,625
you unblock rendering to the terminal and

34
01:01:03,625 --> 01:01:04,916
reading from the file system and

35
01:01:04,916 --> 01:01:06,000
everything so that you can trigger

36
01:01:06,000 --> 01:01:07,000
renders at any point

37
01:01:07,000 --> 01:01:07,541
in time.

38
01:01:09,458 --> 01:01:10,541
And then it's open to community

39
01:01:10,541 --> 01:01:11,666
suggestions as well.

40
01:01:11,666 --> 01:01:13,000
So if you had a prompt that you wanted to

41
01:01:13,000 --> 01:01:13,708
submit to Laravel

42
01:01:13,708 --> 01:01:14,625
prompts and it got closed

43
01:01:14,625 --> 01:01:15,708
because he doesn't want the maintenance

44
01:01:15,708 --> 01:01:17,791
burden, we're open to taking that on.

45
01:01:19,416 --> 01:01:22,125
Other projects, I've got some stuff for

46
01:01:22,125 --> 01:01:26,541
FFmpeg, managing on demand disks.

47
01:01:27,875 --> 01:01:27,916
Yeah.

48
01:01:27,958 --> 01:01:30,000
I think that's a few.

49
01:01:30,000 --> 01:01:31,500
I think that's probably enough packages.

50
01:01:31,500 --> 01:01:32,541
I got enough on my plate.

51
01:01:33,458 --> 01:01:33,666
Yes.

52
01:01:34,000 --> 01:01:36,875
I know because I think, I mean, this is

53
01:01:36,875 --> 01:01:38,000
going back maybe one of

54
01:01:38,000 --> 01:01:38,791
the first times we spoke

55
01:01:38,791 --> 01:01:42,291
was on the FF, is it FFmpeg?

56
01:01:43,125 --> 01:01:44,000
Yeah, FFmpeg.

57
01:01:44,791 --> 01:01:45,000
MPEG.

58
01:01:45,375 --> 01:01:45,541
Yeah.

59
01:01:46,291 --> 01:01:46,833
Because you were doing

60
01:01:46,833 --> 01:01:47,916
some cool stuff with that.

61
01:01:49,083 --> 01:01:51,291
But today let's talk about Whiskey.

62
01:01:51,291 --> 01:01:53,541
So Whiskey is a project you created, I

63
01:01:53,541 --> 01:01:55,125
think it's been out about a year now.

64
01:01:55,541 --> 01:01:56,875
Is that sound about right?

65
01:01:57,541 --> 01:01:57,833
Yeah.

66
01:01:58,083 --> 01:02:01,958
I started it out as a package just called

67
01:02:01,958 --> 01:02:03,000
Laravel Git hooks.

68
01:02:03,458 --> 01:02:04,750
And that would register a couple of

69
01:02:04,750 --> 01:02:05,291
commands that you

70
01:02:05,291 --> 01:02:06,416
would bring into a package.

71
01:02:07,000 --> 01:02:08,000
And then I went to

72
01:02:08,000 --> 01:02:10,250
Chicago for PHP tech last year.

73
01:02:11,125 --> 01:02:13,416
And Nuno suggested to me that I write it

74
01:02:13,416 --> 01:02:14,750
as a standalone CLI

75
01:02:14,750 --> 01:02:16,166
using Laravel zero.

76
01:02:17,375 --> 01:02:19,166
And by the end of the conference, I had a

77
01:02:19,166 --> 01:02:20,416
working proof of concept.

78
01:02:20,875 --> 01:02:22,541
And then I just kind of

79
01:02:22,541 --> 01:02:24,000
kept improving it over time.

80
01:02:24,625 --> 01:02:26,333
I still haven't hit 1.0 yet.

81
01:02:27,125 --> 01:02:28,708
There's one more little

82
01:02:28,708 --> 01:02:29,916
thing that I want to squash.

83
01:02:30,791 --> 01:02:33,541
But yeah, I mean, it's useful.

84
01:02:33,541 --> 01:02:34,333
It's being used out in

85
01:02:34,333 --> 01:02:35,458
the wild in projects.

86
01:02:35,458 --> 01:02:37,583
It's been great for my own projects.

87
01:02:38,416 --> 01:02:41,708
And I love not having to rely on Husky in

88
01:02:41,708 --> 01:02:42,833
my node dependencies.

89
01:02:43,875 --> 01:02:44,333
That's nice.

90
01:02:45,083 --> 01:02:48,625
So as someone that's never used it, don't

91
01:02:48,625 --> 01:02:49,625
know anything, say that

92
01:02:49,625 --> 01:02:50,458
they're just listening

93
01:02:50,458 --> 01:02:50,708
in.

94
01:02:51,000 --> 01:02:54,000
What is the, basically what is Whiskey

95
01:02:54,000 --> 01:02:54,875
and what is the selling

96
01:02:54,875 --> 01:02:55,916
point on why you would

97
01:02:55,958 --> 01:02:56,708
want to use it?

98
01:02:57,958 --> 01:02:58,125
Yeah.

99
01:02:58,125 --> 01:03:01,041
So we, at a client I was working at, we

100
01:03:01,041 --> 01:03:02,458
had a need to manage all

101
01:03:02,458 --> 01:03:03,333
of our Git hooks across

102
01:03:03,333 --> 01:03:04,208
the entire team.

103
01:03:05,375 --> 01:03:07,708
Previously I've used Husky and like it

104
01:03:07,708 --> 01:03:09,458
worked fine, but it's a

105
01:03:09,458 --> 01:03:10,541
little bit higher friction

106
01:03:10,541 --> 01:03:12,208
to install than I was hoping for.

107
01:03:13,000 --> 01:03:15,291
And so my goal was to just build

108
01:03:15,291 --> 01:03:16,750
something that's only PHP

109
01:03:16,750 --> 01:03:19,166
that only depends on the PHP

110
01:03:19,166 --> 01:03:21,958
version and no other dependencies and

111
01:03:21,958 --> 01:03:22,791
something that would be

112
01:03:22,791 --> 01:03:25,083
the lowest friction barrier

113
01:03:25,166 --> 01:03:26,458
to entry possible.

114
01:03:28,375 --> 01:03:29,500
So the name Whiskey is

115
01:03:29,500 --> 01:03:31,541
kind of an homage to Husky.

116
01:03:33,125 --> 01:03:35,291
But yeah, I went through this, tried to

117
01:03:35,291 --> 01:03:37,208
make it as easy as possible.

118
01:03:37,791 --> 01:03:39,500
It's easy to disable.

119
01:03:39,500 --> 01:03:40,375
It's easy to update.

120
01:03:42,666 --> 01:03:46,333
Well, I was going to say, so let's say

121
01:03:46,333 --> 01:03:47,500
you're a developer and

122
01:03:47,500 --> 01:03:49,875
you've not really used Git

123
01:03:50,625 --> 01:03:51,375
hooks before.

124
01:03:52,000 --> 01:03:52,875
What's the selling point

125
01:03:52,875 --> 01:03:54,166
to even start using those?

126
01:03:55,041 --> 01:03:57,208
Like what are some common scenarios where

127
01:03:57,208 --> 01:04:01,000
you'd want to use Git hooks there?

128
01:04:01,916 --> 01:04:02,125
Yeah.

129
01:04:02,458 --> 01:04:04,166
So Git hooks are kind

130
01:04:04,166 --> 01:04:05,333
of a controversial thing.

131
01:04:06,500 --> 01:04:07,833
It's a really useful tool in certain

132
01:04:07,833 --> 01:04:08,666
scenarios, but it's

133
01:04:08,666 --> 01:04:10,166
really easy to go overboard.

134
01:04:11,375 --> 01:04:14,041
So when you're doing your commands and

135
01:04:14,041 --> 01:04:15,666
push and pull and merge

136
01:04:15,666 --> 01:04:17,166
and all that sort of stuff,

137
01:04:18,666 --> 01:04:20,500
each time that's called, Git

138
01:04:20,500 --> 01:04:21,833
is going to trigger a hook.

139
01:04:22,125 --> 01:04:23,416
And if you've got something registered in

140
01:04:23,416 --> 01:04:24,625
that hook, it's going to run it.

141
01:04:24,958 --> 01:04:26,166
If you don't have anything registered,

142
01:04:26,166 --> 01:04:27,125
it's just a no op and

143
01:04:27,125 --> 01:04:28,083
it's going to keep going.

144
01:04:28,750 --> 01:04:31,208
So for myself, every time that I make a

145
01:04:31,208 --> 01:04:32,541
commit, I want to run the linter.

146
01:04:33,791 --> 01:04:36,541
And so I've registered that I've got my

147
01:04:36,541 --> 01:04:38,791
composer lint command.

148
01:04:39,541 --> 01:04:40,916
And in my Git hook, it just calls

149
01:04:40,916 --> 01:04:42,708
composer lint on push.

150
01:04:42,958 --> 01:04:45,208
It's going to run composer lint, composer

151
01:04:45,208 --> 01:04:47,916
types, composer stan, composer test.

152
01:04:49,166 --> 01:04:51,250
If that's too slow and it's slowing you

153
01:04:51,250 --> 01:04:51,833
down, you can always

154
01:04:51,833 --> 01:04:53,000
just tack on the dash dash

155
01:04:53,000 --> 01:04:54,958
no verify flag and it'll skip it.

156
01:04:56,125 --> 01:04:57,500
But that's what it is.

157
01:04:58,333 --> 01:04:59,916
So it can slow you down.

158
01:04:59,916 --> 01:05:01,166
You don't always have to use it.

159
01:05:01,375 --> 01:05:02,708
It is easy to go overboard.

160
01:05:03,000 --> 01:05:06,000
So I would warn people against going with

161
01:05:06,000 --> 01:05:07,125
a Git hook that ends up

162
01:05:07,125 --> 01:05:08,291
being like two minutes.

163
01:05:09,500 --> 01:05:10,416
Try to keep it fast.

164
01:05:11,000 --> 01:05:11,208
Yeah.

165
01:05:11,625 --> 01:05:13,916
I was thinking like so, like in a team

166
01:05:13,916 --> 01:05:14,833
environment, if you have a

167
01:05:14,833 --> 01:05:16,041
ton of like, say you have a

168
01:05:16,041 --> 01:05:19,833
two minute Git hook and does it, is it

169
01:05:19,833 --> 01:05:21,041
blocking for the other person?

170
01:05:21,041 --> 01:05:23,125
Like if you push and it's running and

171
01:05:23,125 --> 01:05:24,375
then I push, that's not,

172
01:05:24,375 --> 01:05:25,541
it's still going to push,

173
01:05:25,541 --> 01:05:25,875
right?

174
01:05:25,875 --> 01:05:27,250
It's just going to,

175
01:05:27,250 --> 01:05:28,208
it's just going to rerun.

176
01:05:28,791 --> 01:05:29,416
On the client.

177
01:05:30,875 --> 01:05:31,875
So this has nothing

178
01:05:31,875 --> 01:05:33,458
to do with Git at all.

179
01:05:34,291 --> 01:05:37,125
So this will, if any of your Git hooks

180
01:05:37,125 --> 01:05:38,416
return a non-zero exit

181
01:05:38,416 --> 01:05:40,125
code, it's going to stop the

182
01:05:40,166 --> 01:05:42,041
process of going to GitHub.

183
01:05:42,625 --> 01:05:44,500
So this is a way to save minutes on CI

184
01:05:44,500 --> 01:05:45,750
and stuff like that,

185
01:05:45,750 --> 01:05:46,625
because you know that when

186
01:05:46,625 --> 01:05:48,666
you're pushing, it's already going to

187
01:05:48,666 --> 01:05:49,791
pass the lint check.

188
01:05:50,500 --> 01:05:52,416
So you're not having to push your code up

189
01:05:52,416 --> 01:05:53,500
there and it's like,

190
01:05:54,000 --> 01:05:55,708
oh, I missed, I missed

191
01:05:55,708 --> 01:05:57,041
my spacing on this.

192
01:05:57,041 --> 01:05:58,583
I had all my stuff on one line when it

193
01:05:58,583 --> 01:05:59,208
should have been split

194
01:05:59,208 --> 01:06:00,708
up and it, and it doesn't

195
01:06:00,708 --> 01:06:00,958
pass.

196
01:06:00,958 --> 01:06:01,708
So then you need to have

197
01:06:01,708 --> 01:06:03,333
another commit going in after it.

198
01:06:03,333 --> 01:06:05,541
That's just tagged linting.

199
01:06:06,750 --> 01:06:08,750
And then you have it run and sometimes

200
01:06:08,750 --> 01:06:09,750
you've got multiple,

201
01:06:09,750 --> 01:06:12,041
multiple checks on GitHub.

202
01:06:12,416 --> 01:06:13,750
So you're pushing these things up.

203
01:06:14,208 --> 01:06:15,500
You're still running your test suite and

204
01:06:15,500 --> 01:06:15,791
then you've got

205
01:06:15,791 --> 01:06:17,208
multiple things running at the

206
01:06:17,208 --> 01:06:17,875
same time.

207
01:06:18,500 --> 01:06:19,875
It's just, it's a bit of a pain.

208
01:06:20,083 --> 01:06:21,458
And then for an organization, you've got

209
01:06:21,458 --> 01:06:22,291
a limited number of

210
01:06:22,291 --> 01:06:23,916
minutes in your, your GitHub

211
01:06:24,125 --> 01:06:25,000
actions as well.

212
01:06:25,541 --> 01:06:27,125
And so if you've got a lot of stuff going

213
01:06:27,125 --> 01:06:28,000
on, you kind of want to

214
01:06:28,000 --> 01:06:29,375
minimize that by offloading

215
01:06:29,375 --> 01:06:30,875
that burden to the client first.

216
01:06:32,291 --> 01:06:32,875
Gotcha.

217
01:06:32,875 --> 01:06:33,166
Gotcha.

218
01:06:33,625 --> 01:06:36,708
And, and then now as far as like whiskey,

219
01:06:36,708 --> 01:06:38,000
it's, it's all, you

220
01:06:38,000 --> 01:06:39,416
know, the way you build,

221
01:06:41,166 --> 01:06:43,375
I guess, build, create the way you

222
01:06:43,375 --> 01:06:44,250
implement everything.

223
01:06:44,250 --> 01:06:47,416
It's just straight normal things, right?

224
01:06:47,416 --> 01:06:49,208
Like I know you were comparing it to one

225
01:06:49,208 --> 01:06:52,000
called Husky, but this

226
01:06:52,000 --> 01:06:53,000
one's designed just to be

227
01:06:53,000 --> 01:06:54,458
simple so that way you can define

228
01:06:54,458 --> 01:06:55,875
everything you wanted to do

229
01:06:55,875 --> 01:06:58,125
sort of in a normal fashion,

230
01:06:58,125 --> 01:06:59,041
I guess is the right word.

231
01:06:59,958 --> 01:07:00,291
Yeah.

232
01:07:00,291 --> 01:07:03,291
So the, the big issue with git hooks is

233
01:07:03,291 --> 01:07:04,875
that in your dot get

234
01:07:04,875 --> 01:07:06,875
slash hooks directory that,

235
01:07:06,875 --> 01:07:07,541
that doesn't get

236
01:07:07,541 --> 01:07:08,500
committed to your get tree.

237
01:07:08,916 --> 01:07:10,750
So you can't really

238
01:07:10,750 --> 01:07:11,916
track things that way.

239
01:07:11,916 --> 01:07:14,375
What whiskey does is it registers its own

240
01:07:14,375 --> 01:07:16,000
git hooks directory

241
01:07:16,000 --> 01:07:17,833
and then that's committed

242
01:07:18,083 --> 01:07:19,791
to, to the repo.

243
01:07:20,375 --> 01:07:23,500
And so that's what your, your native get

244
01:07:23,500 --> 01:07:24,500
hooks are going to be calling.

245
01:07:25,458 --> 01:07:27,875
That's a little bit more complicated to

246
01:07:27,875 --> 01:07:29,541
set up than, than whiskey.

247
01:07:29,791 --> 01:07:31,083
I mean, it's not, it's not a huge

248
01:07:31,083 --> 01:07:32,333
difference anyways, but I

249
01:07:32,333 --> 01:07:34,000
was just curious about what

250
01:07:34,000 --> 01:07:35,333
it would look like to build this tool.

251
01:07:35,750 --> 01:07:37,083
So I built it and then I just kind of

252
01:07:37,083 --> 01:07:37,791
kept going and it was

253
01:07:37,791 --> 01:07:38,500
like, Hey, this is cool.

254
01:07:38,791 --> 01:07:39,958
So I was going to release it.

255
01:07:41,541 --> 01:07:44,000
So my goal was to just have it be you

256
01:07:44,000 --> 01:07:45,458
require the package and

257
01:07:45,458 --> 01:07:46,791
then you just run whiskey

258
01:07:46,791 --> 01:07:48,000
install and it does

259
01:07:48,000 --> 01:07:49,041
the whole thing for you.

260
01:07:49,416 --> 01:07:51,208
I've structured it in a way so that if

261
01:07:51,208 --> 01:07:52,416
you've upgraded whiskey

262
01:07:52,416 --> 01:07:54,250
and you're trying to install

263
01:07:54,291 --> 01:07:55,791
it again, it's going to look for all the

264
01:07:55,791 --> 01:07:56,958
legacy ways that I've

265
01:07:56,958 --> 01:07:57,750
ever installed it and

266
01:07:57,750 --> 01:07:59,083
it's going to replace those as well.

267
01:07:59,791 --> 01:08:01,500
So you're usually not going to have to go

268
01:08:01,500 --> 01:08:03,583
in and modify these things manually.

269
01:08:04,208 --> 01:08:07,583
So it's a, I'm trying to have it just be

270
01:08:07,583 --> 01:08:09,625
really, really smooth,

271
01:08:10,333 --> 01:08:12,083
really smooth, straight forward.

272
01:08:12,625 --> 01:08:14,500
Is this something you run on all your

273
01:08:14,500 --> 01:08:15,416
projects, even for like

274
01:08:15,416 --> 01:08:17,583
your personal stuff or do you

275
01:08:17,583 --> 01:08:19,708
kind of think of more of like these get

276
01:08:19,708 --> 01:08:21,500
hooks and, and whiskey

277
01:08:21,500 --> 01:08:23,208
being more in like a team

278
01:08:23,250 --> 01:08:23,708
environment?

279
01:08:25,375 --> 01:08:26,541
I run it on most of my projects.

280
01:08:26,833 --> 01:08:27,000
Yeah.

281
01:08:27,416 --> 01:08:28,875
And I didn't know this until recently,

282
01:08:28,875 --> 01:08:30,166
but apparently, uh,

283
01:08:30,166 --> 01:08:32,666
verbs from, uh, from thunk,

284
01:08:32,875 --> 01:08:34,666
they have it installed in there too.

285
01:08:34,666 --> 01:08:35,500
So that's kind of cool.

286
01:08:35,875 --> 01:08:37,875
And yeah, they told me that they like it

287
01:08:37,875 --> 01:08:39,333
because it just works.

288
01:08:39,333 --> 01:08:40,708
It's one of those things where you just

289
01:08:40,708 --> 01:08:41,541
kind of set it up once

290
01:08:41,541 --> 01:08:42,416
and you can forget about

291
01:08:42,416 --> 01:08:42,583
it.

292
01:08:42,583 --> 01:08:44,458
And you don't need to, it's not one of

293
01:08:44,458 --> 01:08:45,125
those things that's

294
01:08:45,125 --> 01:08:46,500
constantly blocking you from,

295
01:08:46,500 --> 01:08:47,791
from getting your stuff done.

296
01:08:48,583 --> 01:08:49,458
So it's nice to know that

297
01:08:49,458 --> 01:08:50,708
at least it's tolerable.

298
01:08:53,291 --> 01:08:54,041
Yeah, that's true.

299
01:08:55,333 --> 01:08:55,666
That's funny.

300
01:08:56,333 --> 01:08:59,000
Um, so, so what is like, um, this was

301
01:08:59,000 --> 01:09:00,000
sort of off the wall, but

302
01:09:00,000 --> 01:09:01,000
what is sort of the most

303
01:09:01,041 --> 01:09:02,458
advanced thing you've

304
01:09:02,458 --> 01:09:03,583
ever done with the package?

305
01:09:04,041 --> 01:09:05,750
Like are you doing anything crazy in any,

306
01:09:05,750 --> 01:09:06,583
in any of your other

307
01:09:06,583 --> 01:09:09,291
projects that, uh, so

308
01:09:09,291 --> 01:09:10,875
I don't do a whole lot of crazy stuff

309
01:09:10,875 --> 01:09:11,916
with, with whiskey

310
01:09:11,916 --> 01:09:14,125
because normally, normally I

311
01:09:14,125 --> 01:09:15,000
just register all my

312
01:09:15,000 --> 01:09:16,500
scripts as composer scripts.

313
01:09:16,666 --> 01:09:18,583
So I just do like composer, Len,

314
01:09:18,583 --> 01:09:19,583
composer types, composer

315
01:09:19,583 --> 01:09:20,958
coverage, composer, all of

316
01:09:20,958 --> 01:09:21,208
this.

317
01:09:22,333 --> 01:09:24,416
And then in my whiskey dot Jason, Oh

318
01:09:24,416 --> 01:09:25,541
yeah, that was the other change.

319
01:09:25,541 --> 01:09:27,250
I don't register a get hooks directory.

320
01:09:27,250 --> 01:09:28,916
I just have a single composer dot Jason

321
01:09:28,916 --> 01:09:30,333
in your directory route.

322
01:09:30,541 --> 01:09:31,666
So that's where you do it.

323
01:09:31,666 --> 01:09:33,041
And every time you make an update in

324
01:09:33,041 --> 01:09:34,208
there, as long as you're

325
01:09:34,208 --> 01:09:35,500
not adding a new hook, you

326
01:09:35,500 --> 01:09:36,500
don't have to update whiskey.

327
01:09:37,500 --> 01:09:39,000
Um, so that's usually the

328
01:09:39,000 --> 01:09:39,958
only stuff that I'm doing.

329
01:09:39,958 --> 01:09:41,208
I'm not doing crazy stuff.

330
01:09:41,375 --> 01:09:44,208
Like a lot of people will add in like a

331
01:09:44,208 --> 01:09:45,250
scripts directory where

332
01:09:45,250 --> 01:09:46,916
they can have lint staged.

333
01:09:47,500 --> 01:09:48,416
So it'll only lent

334
01:09:48,416 --> 01:09:49,458
anything that's been staged.

335
01:09:49,750 --> 01:09:51,041
I usually try to avoid that.

336
01:09:51,708 --> 01:09:53,875
My biggest suggestion with whiskey and

337
01:09:53,875 --> 01:09:54,750
get hooks in general,

338
01:09:55,333 --> 01:09:56,458
do not let your get hooks

339
01:09:56,458 --> 01:10:00,791
modify the, um, the, the files, just have

340
01:10:00,791 --> 01:10:02,250
it do checks because

341
01:10:02,250 --> 01:10:03,500
if it's modifying files,

342
01:10:03,500 --> 01:10:05,250
especially if you're doing patch commits,

343
01:10:05,250 --> 01:10:05,791
then it's going to

344
01:10:05,791 --> 01:10:06,750
overwrite the, it's going

345
01:10:06,750 --> 01:10:08,916
to recommit the whole file instead of

346
01:10:08,916 --> 01:10:10,000
just that patch section.

347
01:10:10,875 --> 01:10:12,875
So I try my best not to do anything

348
01:10:12,875 --> 01:10:14,333
ambitious and a get hook.

349
01:10:14,625 --> 01:10:16,125
I try to just keep it simple and fast.

350
01:10:18,166 --> 01:10:22,541
Do you, um, I, since you want it simple

351
01:10:22,541 --> 01:10:23,458
and fast, do you run

352
01:10:23,458 --> 01:10:24,416
tests through there too,

353
01:10:24,416 --> 01:10:26,416
or do you kind of keep those for only

354
01:10:26,416 --> 01:10:27,791
like sort of the sea outside?

355
01:10:28,500 --> 01:10:29,666
Uh, I mean, of course running them

356
01:10:29,666 --> 01:10:30,625
locally, but do you also

357
01:10:30,625 --> 01:10:32,000
do that as part of this or,

358
01:10:32,333 --> 01:10:33,291
or how do you usually run

359
01:10:33,291 --> 01:10:34,916
the tests before pushing?

360
01:10:35,916 --> 01:10:39,125
So my, my pre-commit hook is usually just

361
01:10:39,125 --> 01:10:41,250
a linter and then my

362
01:10:41,250 --> 01:10:43,208
pre-push hook is usually

363
01:10:43,500 --> 01:10:46,500
like the, the linter again, um, static

364
01:10:46,500 --> 01:10:48,000
analysis and the test suite

365
01:10:48,000 --> 01:10:49,750
and sometimes type coverage.

366
01:10:50,791 --> 01:10:51,375
Nice, nice.

367
01:10:52,083 --> 01:10:53,708
Um, and then of course, you know, like if

368
01:10:53,708 --> 01:10:55,250
anybody's listening or

369
01:10:55,250 --> 01:10:56,041
watching and they want

370
01:10:56,083 --> 01:10:58,333
to, um, just sort of see what you do, I

371
01:10:58,333 --> 01:11:00,041
assume you, you have a

372
01:11:00,041 --> 01:11:01,833
sample set up there, um, with

373
01:11:01,833 --> 01:11:03,291
the package to kind of get them started

374
01:11:03,291 --> 01:11:04,250
or is it best to look

375
01:11:04,250 --> 01:11:05,083
at, like, look at one of

376
01:11:05,125 --> 01:11:07,291
your other projects just to, just to see

377
01:11:07,291 --> 01:11:08,125
how you're doing things?

378
01:11:09,458 --> 01:11:11,750
Um, yeah, I mean, there's, there's not

379
01:11:11,750 --> 01:11:13,750
really a whole lot to it to demonstrate.

380
01:11:13,750 --> 01:11:15,791
The read me I spent a lot of time on, so

381
01:11:15,791 --> 01:11:17,083
it's pretty descriptive of it.

382
01:11:17,083 --> 01:11:18,916
So it goes through a couple of scenarios

383
01:11:18,916 --> 01:11:20,208
where, where you might

384
01:11:20,208 --> 01:11:21,750
want to skip using whiskey

385
01:11:21,750 --> 01:11:22,708
and stuff like that.

386
01:11:23,458 --> 01:11:26,916
Um, yeah, I don't think there would be a

387
01:11:26,916 --> 01:11:27,750
whole lot of benefit in

388
01:11:27,750 --> 01:11:28,541
showing how it's used in

389
01:11:28,541 --> 01:11:30,500
a project just because it's such a small

390
01:11:30,500 --> 01:11:31,875
narrowly targeted tool.

391
01:11:33,166 --> 01:11:35,750
Um, one thing that I did want to include

392
01:11:35,750 --> 01:11:37,291
in there though, was

393
01:11:37,291 --> 01:11:39,708
there's certain actions

394
01:11:39,708 --> 01:11:40,750
in get that aren't

395
01:11:40,750 --> 01:11:43,000
compatible with the no verify flag.

396
01:11:43,958 --> 01:11:45,750
So if you're doing something where

397
01:11:45,750 --> 01:11:47,041
someone used the no

398
01:11:47,041 --> 01:11:50,083
verify flag to push something

399
01:11:50,791 --> 01:11:53,166
that wasn't passing the linter and then

400
01:11:53,166 --> 01:11:54,458
they skipped the CI step

401
01:11:54,458 --> 01:11:55,416
and they merged anyways.

402
01:11:55,625 --> 01:11:57,875
So you've got changes in your main branch

403
01:11:57,875 --> 01:11:59,041
that don't pass the linter.

404
01:11:59,791 --> 01:12:01,875
You're going to bring that down into your

405
01:12:01,875 --> 01:12:02,750
local branch and then

406
01:12:02,750 --> 01:12:03,291
you're going to merge

407
01:12:03,291 --> 01:12:05,750
from main and then as you're merging,

408
01:12:05,958 --> 01:12:06,666
it's going to fail

409
01:12:06,666 --> 01:12:07,833
because it doesn't pass the

410
01:12:07,833 --> 01:12:09,958
lint stage because we're not, we're

411
01:12:09,958 --> 01:12:11,500
running the pre-commit hook.

412
01:12:12,500 --> 01:12:15,000
So if you try to run get merge dash dash

413
01:12:15,000 --> 01:12:16,541
continue dash dash no

414
01:12:16,541 --> 01:12:18,208
verify so that you're skipping

415
01:12:18,208 --> 01:12:20,083
the hooks, it's not going to work because

416
01:12:20,083 --> 01:12:20,958
that function doesn't

417
01:12:20,958 --> 01:12:22,125
work with the no verify.

418
01:12:22,666 --> 01:12:24,625
So I added into whiskey, uh, just a

419
01:12:24,625 --> 01:12:26,541
whiskey skip once command.

420
01:12:27,708 --> 01:12:29,291
And so if you do that, it'll skip it.

421
01:12:29,291 --> 01:12:30,166
You can merge from main,

422
01:12:31,125 --> 01:12:32,583
uh, or rebase from main.

423
01:12:32,916 --> 01:12:34,875
And then at that point you run the linter

424
01:12:34,875 --> 01:12:35,916
on a separate commit

425
01:12:35,916 --> 01:12:37,125
and then you can keep

426
01:12:37,125 --> 01:12:38,041
on going with your work.

427
01:12:39,083 --> 01:12:41,333
So there's some, there's some edge cases

428
01:12:41,333 --> 01:12:43,083
and everything, but I try

429
01:12:43,083 --> 01:12:44,500
to, I try to demonstrate

430
01:12:44,625 --> 01:12:46,041
those in the read me.

431
01:12:46,875 --> 01:12:47,208
Yeah.

432
01:12:47,208 --> 01:12:47,875
It's funny.

433
01:12:48,333 --> 01:12:50,333
Like, yeah, I was going to say, like get,

434
01:12:50,708 --> 01:12:51,791
get in general, like,

435
01:12:51,791 --> 01:12:54,333
um, you know, I'm sort

436
01:12:54,333 --> 01:12:56,083
of this old man developer now.

437
01:12:56,250 --> 01:12:58,250
You know, we started off with no version

438
01:12:58,250 --> 01:12:59,166
control and then it

439
01:12:59,166 --> 01:13:02,083
was a, what CVS or CSV

440
01:13:02,583 --> 01:13:04,250
and then Mercurial and

441
01:13:04,250 --> 01:13:06,625
then, uh, SVN at one point.

442
01:13:06,833 --> 01:13:09,833
Uh, but I love that like sort of get

443
01:13:09,833 --> 01:13:11,250
seems to have won the

444
01:13:11,250 --> 01:13:14,458
space of, uh, of, uh, version

445
01:13:14,500 --> 01:13:14,875
control.

446
01:13:14,875 --> 01:13:16,250
It just seems so much easier now.

447
01:13:16,500 --> 01:13:18,208
Um, then, you know, way back in the day

448
01:13:18,208 --> 01:13:20,291
when it was sort of the,

449
01:13:20,291 --> 01:13:21,250
you know, the merges and

450
01:13:21,250 --> 01:13:23,875
stuff were just terrible and all that.

451
01:13:25,291 --> 01:13:27,916
But, uh, um, I was sort of a random

452
01:13:27,916 --> 01:13:30,000
tangent, but, uh, so going

453
01:13:30,000 --> 01:13:31,000
back to the name, you said

454
01:13:31,000 --> 01:13:33,791
the name came from sort of,

455
01:13:33,791 --> 01:13:35,833
uh, uh, a call out to Husky.

456
01:13:36,791 --> 01:13:37,083
Yeah.

457
01:13:37,083 --> 01:13:38,916
And the name was like a hundred percent

458
01:13:38,916 --> 01:13:40,500
credit to Nuno on the name.

459
01:13:41,083 --> 01:13:42,708
I don't know how he just like pulled it

460
01:13:42,708 --> 01:13:43,541
out of thin air

461
01:13:43,541 --> 01:13:44,916
because, uh, he suggested, why

462
01:13:44,916 --> 01:13:47,208
don't you make it a, into a CLI instead.

463
01:13:47,208 --> 01:13:49,625
And like, yeah, geez, I

464
01:13:49,625 --> 01:13:50,500
wonder what I would name that.

465
01:13:50,500 --> 01:13:51,375
He was like, why not whiskey?

466
01:13:51,416 --> 01:13:54,666
It's like, it was perfect because it's

467
01:13:54,666 --> 01:13:56,208
pretty similar to Husky

468
01:13:56,208 --> 01:13:57,250
and that's definitely how

469
01:13:57,250 --> 01:13:57,916
it was inspired.

470
01:13:58,500 --> 01:13:59,208
I don't know where he got

471
01:13:59,208 --> 01:14:00,833
that name from, but props to him.

472
01:14:01,666 --> 01:14:04,708
Well, so Husky, I'm, I keep thinking of a

473
01:14:04,708 --> 01:14:06,250
dog, like a Husky dog.

474
01:14:06,750 --> 01:14:09,208
Um, and then I assumed you were drinking

475
01:14:09,208 --> 01:14:10,125
whiskey the night you

476
01:14:10,125 --> 01:14:12,291
created this and that's where

477
01:14:12,500 --> 01:14:13,541
the name came from.

478
01:14:13,958 --> 01:14:15,541
No, I haven't developed

479
01:14:15,541 --> 01:14:16,916
my palette for whiskey yet.

480
01:14:16,916 --> 01:14:18,583
I've still got a very unrefined palette.

481
01:14:21,208 --> 01:14:22,750
But uh, but you do have the logo there

482
01:14:22,750 --> 01:14:23,416
with a little whiskey

483
01:14:23,416 --> 01:14:24,625
glass, um, with a little

484
01:14:24,625 --> 01:14:25,041
ice cube.

485
01:14:25,041 --> 01:14:25,958
So that's pretty sweet.

486
01:14:25,958 --> 01:14:26,458
Yeah.

487
01:14:26,458 --> 01:14:28,166
And then I just, I just spell whiskey the

488
01:14:28,166 --> 01:14:32,583
correct way, much too much to the chagrin

489
01:14:32,583 --> 01:14:33,166
of J Mac.

490
01:14:34,958 --> 01:14:36,375
He thinks I should be spelling whiskey

491
01:14:36,375 --> 01:14:37,500
the other way, but it's,

492
01:14:37,500 --> 01:14:38,250
it's just not the right

493
01:14:38,250 --> 01:14:38,500
way.

494
01:14:39,541 --> 01:14:40,750
I will die on this hill.

495
01:14:42,500 --> 01:14:44,333
What's funny though, is if you Google

496
01:14:44,333 --> 01:14:45,791
like Len Woodward

497
01:14:45,791 --> 01:14:48,125
whiskey, like there's actually

498
01:14:48,333 --> 01:14:50,125
like whiskey that comes

499
01:14:50,125 --> 01:14:51,666
up, not the, not the project.

500
01:14:51,875 --> 01:14:53,625
And you keep, you would think that like,

501
01:14:53,625 --> 01:14:54,333
you know, that would be

502
01:14:54,333 --> 01:14:55,500
sort of random, but it

503
01:14:55,500 --> 01:14:57,083
was like, cause cause when I was doing

504
01:14:57,083 --> 01:14:58,000
research, I was like, Hey.

505
01:14:58,416 --> 01:14:59,833
And then it was like all these, I guess

506
01:14:59,833 --> 01:15:01,500
Woodward and then Woodford

507
01:15:01,500 --> 01:15:02,541
and you have all these other

508
01:15:02,541 --> 01:15:05,708
different whiskey actual brands, um,

509
01:15:05,708 --> 01:15:06,500
which is kind of funny.

510
01:15:06,875 --> 01:15:08,291
Uh, but, uh, but who

511
01:15:08,291 --> 01:15:09,041
did, who did your logo?

512
01:15:09,250 --> 01:15:10,666
Did you design that one yourself or?

513
01:15:11,166 --> 01:15:13,166
Yeah, I just, I just went in Figma and

514
01:15:13,166 --> 01:15:14,208
tried to do something

515
01:15:14,208 --> 01:15:15,291
a little bit stylized.

516
01:15:15,291 --> 01:15:15,958
It was just a really

517
01:15:15,958 --> 01:15:16,791
quick and dirty thing.

518
01:15:17,541 --> 01:15:19,250
I think I was, it was me anyways.

519
01:15:19,250 --> 01:15:20,166
Did I steal it?

520
01:15:20,166 --> 01:15:21,166
I don't think I stole it.

521
01:15:21,458 --> 01:15:22,708
I'm pretty sure I did it myself.

522
01:15:24,958 --> 01:15:26,166
I'm not even sure anymore.

523
01:15:26,625 --> 01:15:27,458
I don't know what I

524
01:15:27,458 --> 01:15:28,375
have and haven't done.

525
01:15:29,958 --> 01:15:31,500
If I stole your artwork, let me know.

526
01:15:31,875 --> 01:15:32,583
I will give you money.

527
01:15:33,041 --> 01:15:34,291
I was going to say it all, it all runs

528
01:15:34,291 --> 01:15:35,333
together in the end on it.

529
01:15:36,625 --> 01:15:39,208
But how's the, um, you know, as far as

530
01:15:39,208 --> 01:15:40,375
the usage and stuff is,

531
01:15:40,375 --> 01:15:41,708
is the community picking

532
01:15:41,708 --> 01:15:44,458
up and using it or, um, yeah, I mean,

533
01:15:44,458 --> 01:15:45,916
it's been a slow and steady grind.

534
01:15:46,166 --> 01:15:48,416
Um, I think I'm up to like 38,000

535
01:15:48,416 --> 01:15:49,666
installs or something like that.

536
01:15:49,666 --> 01:15:51,666
And I'm up to like 160 stars on GitHub.

537
01:15:52,083 --> 01:15:55,083
So it's not like a super smash hit, but I

538
01:15:55,083 --> 01:15:56,000
think get hooks are

539
01:15:56,000 --> 01:15:57,041
kind of a niche thing.

540
01:15:58,416 --> 01:16:00,458
So not everyone is looking for it, but

541
01:16:00,458 --> 01:16:02,541
every once in a while open Twitter and

542
01:16:02,541 --> 01:16:03,333
someone's like, Oh, I

543
01:16:03,333 --> 01:16:04,208
found this cool tool.

544
01:16:04,208 --> 01:16:06,000
And I'm like, Oh shit, that's awesome.

545
01:16:06,291 --> 01:16:07,416
I wasn't expecting that.

546
01:16:08,083 --> 01:16:09,375
It was just a nice little surprise.

547
01:16:10,291 --> 01:16:12,541
That is also, I've actually, I don't, I'm

548
01:16:12,541 --> 01:16:14,166
trying to remember if I use get hooks

549
01:16:14,291 --> 01:16:17,583
that often and I don't, I'm trying to, I

550
01:16:17,583 --> 01:16:19,333
don't, I'm not pulling up anything out

551
01:16:19,333 --> 01:16:20,208
of my mind that where

552
01:16:20,208 --> 01:16:21,125
I've been using them lately.

553
01:16:21,750 --> 01:16:23,541
Um, so may I need to actually research

554
01:16:23,541 --> 01:16:25,958
more on, you know, setting those up and

555
01:16:26,208 --> 01:16:27,166
give them a try cause I

556
01:16:27,166 --> 01:16:28,166
get, just seems so useful.

557
01:16:28,666 --> 01:16:31,166
Um, especially like the running tests,

558
01:16:31,166 --> 01:16:31,791
like, well, you said

559
01:16:31,791 --> 01:16:32,416
that was a pre-commit

560
01:16:32,500 --> 01:16:34,916
hook, but, um, just even

561
01:16:34,916 --> 01:16:36,125
the linter and all that stuff.

562
01:16:36,125 --> 01:16:38,000
I mean, it seems super useful to have all

563
01:16:38,000 --> 01:16:39,208
that just set up once.

564
01:16:39,208 --> 01:16:41,625
And then everybody just, you know, has

565
01:16:41,625 --> 01:16:42,958
the same stuff all the time.

566
01:16:45,291 --> 01:16:45,791
Yeah.

567
01:16:45,791 --> 01:16:47,208
It's funny every once in a while, I got

568
01:16:47,208 --> 01:16:49,041
this little uptick and installs too.

569
01:16:49,041 --> 01:16:50,958
Cause, uh, I think like every six months

570
01:16:50,958 --> 01:16:54,541
or so, um, Roman Pronsky ends up writing

571
01:16:54,541 --> 01:16:56,500
like a little tiny blurb about it in the

572
01:16:56,500 --> 01:16:58,000
PHP foundation newsletter.

573
01:16:58,958 --> 01:17:00,583
Like people are talking about this again.

574
01:17:00,583 --> 01:17:01,291
I wonder what happened

575
01:17:01,291 --> 01:17:02,416
and it's always Roman.

576
01:17:03,958 --> 01:17:04,791
That's great.

577
01:17:04,791 --> 01:17:05,208
That's great.

578
01:17:05,791 --> 01:17:08,541
Um, so they, they do, well, I guess they

579
01:17:08,541 --> 01:17:10,708
pick up that's on like the official PHP

580
01:17:10,708 --> 01:17:11,666
news there, is that

581
01:17:11,666 --> 01:17:12,541
what Roman writes that?

582
01:17:12,541 --> 01:17:14,875
Or is that on the, um, I can't remember

583
01:17:14,875 --> 01:17:15,625
if he does it through

584
01:17:15,625 --> 01:17:16,500
the foundation or if

585
01:17:16,500 --> 01:17:17,666
he does it through the jet brains.

586
01:17:17,875 --> 01:17:21,958
I think it's jet brains, but yeah, every

587
01:17:21,958 --> 01:17:22,500
once in a while

588
01:17:22,500 --> 01:17:23,458
there's something on there.

589
01:17:23,708 --> 01:17:26,583
And then, uh, and then yeah, every once

590
01:17:26,583 --> 01:17:28,083
in a while there's another project too,

591
01:17:28,083 --> 01:17:31,208
like FFmpeg stuff or a conductor was on

592
01:17:31,208 --> 01:17:33,041
that people are really excited about.

593
01:17:33,041 --> 01:17:34,750
But I still got some heavy work to do on

594
01:17:34,750 --> 01:17:36,791
that before it's, before it's ready to

595
01:17:36,791 --> 01:17:39,000
properly announce and release, I've got

596
01:17:39,000 --> 01:17:40,750
my proof of concept in there, but it's,

597
01:17:40,750 --> 01:17:41,375
it's gross.

598
01:17:43,541 --> 01:17:46,375
Well, so I think you alluded to it

599
01:17:46,375 --> 01:17:47,916
earlier, whiskey, you,

600
01:17:47,916 --> 01:17:49,208
you think it's pretty much

601
01:17:49,291 --> 01:17:51,041
feature complete or you got one, one or

602
01:17:51,041 --> 01:17:53,000
more, one or two more things you want to

603
01:17:53,000 --> 01:17:54,958
do to it before jumping over.

604
01:17:55,500 --> 01:17:57,958
So there's one bug that's still, that's

605
01:17:57,958 --> 01:17:59,041
still annoying me and

606
01:17:59,041 --> 01:18:00,666
some GitHub, uh, some

607
01:18:00,666 --> 01:18:04,125
git hooks will accept parameters and I'm

608
01:18:04,125 --> 01:18:05,458
not set up to handle that.

609
01:18:05,875 --> 01:18:08,375
And I just haven't been able to sit down

610
01:18:08,375 --> 01:18:10,791
and properly crack this, this problem.

611
01:18:11,291 --> 01:18:13,208
So where that becomes an issue is if

612
01:18:13,208 --> 01:18:15,458
you're using an extension or a plugin,

613
01:18:16,208 --> 01:18:18,708
like, um, Oh, what's it called?

614
01:18:18,708 --> 01:18:21,166
It's like lint commit message.

615
01:18:21,666 --> 01:18:24,833
So if you have a certain style that you

616
01:18:24,833 --> 01:18:25,375
want your commit

617
01:18:25,375 --> 01:18:28,000
messages to abide by, um,

618
01:18:28,000 --> 01:18:31,083
it'll, it'll look at the actual message

619
01:18:31,083 --> 01:18:32,708
and we'll do that, but I'm not sure how

620
01:18:32,708 --> 01:18:33,500
to handle that yet.

621
01:18:34,250 --> 01:18:36,541
The other thing that, um, that I had

622
01:18:36,541 --> 01:18:38,458
fought with for a while was just an

623
01:18:38,500 --> 01:18:40,541
architectural thing where it was really

624
01:18:40,541 --> 01:18:42,000
gross the way I had to register

625
01:18:42,083 --> 01:18:42,541
everything.

626
01:18:42,750 --> 01:18:46,750
So I had a, like a shell script in my, in

627
01:18:46,750 --> 01:18:48,458
my vendor folder that the

628
01:18:48,458 --> 01:18:50,541
get hook would call that shell script

629
01:18:50,541 --> 01:18:54,000
would then ask the Laravel CLI from

630
01:18:54,000 --> 01:18:56,541
Laravel zero for a list of

631
01:18:56,541 --> 01:18:57,791
the, the commands to write.

632
01:18:57,791 --> 01:18:58,958
Then it would bring that back.

633
01:18:59,291 --> 01:19:00,916
And if you're supposed to skip it, that

634
01:19:00,916 --> 01:19:02,375
list will just come back empty.

635
01:19:02,708 --> 01:19:04,375
But the reason I had to do that, that was

636
01:19:04,375 --> 01:19:05,791
so that I was getting the

637
01:19:05,833 --> 01:19:07,541
output as it came out.

638
01:19:08,416 --> 01:19:11,500
Um, I ended up discovering the process

639
01:19:11,500 --> 01:19:13,375
for sad has this TTY mode.

640
01:19:13,750 --> 01:19:15,750
So it basically attaches the input and

641
01:19:15,750 --> 01:19:17,750
output to the, to the actual

642
01:19:17,791 --> 01:19:18,875
currently running terminal.

643
01:19:18,875 --> 01:19:21,000
So it had a benefit of

644
01:19:21,000 --> 01:19:22,250
being able to be interactive.

645
01:19:22,500 --> 01:19:24,000
So if something stops and asks for user

646
01:19:24,000 --> 01:19:25,750
input, you can do that, but it also

647
01:19:25,750 --> 01:19:27,625
maintains the colors in the terminal.

648
01:19:28,250 --> 01:19:29,416
And that was like a really

649
01:19:29,416 --> 01:19:31,916
unexpected, nice side effect.

650
01:19:32,375 --> 01:19:35,125
So you still get all like the, the green

651
01:19:35,125 --> 01:19:36,583
checks and the red X's.

652
01:19:37,708 --> 01:19:40,250
So that brought me like way

653
01:19:40,250 --> 01:19:41,458
closer to feature complete.

654
01:19:41,875 --> 01:19:42,666
I've just got that one

655
01:19:42,666 --> 01:19:43,875
last little thing to do.

656
01:19:43,875 --> 01:19:44,750
I'm pretty sure we're

657
01:19:44,750 --> 01:19:45,875
even windows compatible.

658
01:19:46,916 --> 01:19:48,208
It's been a while since I've tested that

659
01:19:48,208 --> 01:19:51,083
out, but I'm pretty sure it works.

660
01:19:51,666 --> 01:19:54,750
Well, I guess kind of eluding into that,

661
01:19:54,750 --> 01:19:56,500
are you looking for sort of community

662
01:19:56,500 --> 01:19:57,666
help on any of these things?

663
01:19:57,666 --> 01:19:58,875
Or you think you're just going to knock

664
01:19:58,875 --> 01:20:00,583
them out one day when you get some time?

665
01:20:01,291 --> 01:20:02,833
Yeah, there's been, there's been like

666
01:20:02,833 --> 01:20:05,500
three other people that just pop up

667
01:20:05,583 --> 01:20:07,791
every now and then with a PR and like

668
01:20:07,791 --> 01:20:09,875
most of the time they're, they're great.

669
01:20:09,875 --> 01:20:11,458
Like they're just this really narrowly

670
01:20:11,458 --> 01:20:14,833
targeted banger of a PR and like they

671
01:20:14,833 --> 01:20:17,625
list the, the issue, they list why it's

672
01:20:17,625 --> 01:20:18,875
an issue, how to fix it.

673
01:20:19,083 --> 01:20:20,125
They got the fix in there.

674
01:20:20,666 --> 01:20:22,333
And then every time I tag a new release,

675
01:20:22,333 --> 01:20:24,041
I try to tag them so that I can show them

676
01:20:24,041 --> 01:20:26,833
out and thank them and yeah, it's been,

677
01:20:26,833 --> 01:20:28,250
it's been fun having a project that

678
01:20:28,250 --> 01:20:30,333
other people care about, even if it's

679
01:20:30,333 --> 01:20:32,000
just like this tiny little bit.

680
01:20:33,041 --> 01:20:33,416
Yeah.

681
01:20:34,041 --> 01:20:35,625
And, and to have people that commit and

682
01:20:35,625 --> 01:20:36,916
do what you just said is,

683
01:20:36,916 --> 01:20:38,958
is pretty impressive now.

684
01:20:39,333 --> 01:20:41,750
You know, it's always great when somebody

685
01:20:41,750 --> 01:20:44,583
does all that and it's really isolated

686
01:20:44,666 --> 01:20:46,250
to the one thing that they're having the

687
01:20:46,250 --> 01:20:49,500
issue with, you know, so, you know, that

688
01:20:49,500 --> 01:20:51,083
was where I was going to, like, if, you

689
01:20:51,083 --> 01:20:52,083
know, if you're listening or watching

690
01:20:52,083 --> 01:20:54,375
and you know, you've not made commits or

691
01:20:54,375 --> 01:20:56,875
pull requests to any projects, keep it

692
01:20:56,875 --> 01:20:59,416
small, keep it contained and focused on

693
01:20:59,416 --> 01:21:01,625
one thing, and then it's your likelihood

694
01:21:01,791 --> 01:21:04,041
of getting it merged is way greater than,

695
01:21:04,500 --> 01:21:05,541
you know, if you're

696
01:21:05,541 --> 01:21:07,291
trying to tackle 50,000

697
01:21:07,291 --> 01:21:08,791
files or anything else like that.

698
01:21:10,000 --> 01:21:10,250
Yeah.

699
01:21:10,541 --> 01:21:12,458
And if you are trying to develop a thing

700
01:21:12,458 --> 01:21:15,375
and you're not really sure why, why

701
01:21:15,375 --> 01:21:17,500
certain things aren't working, I do have

702
01:21:17,500 --> 01:21:19,041
some hidden commands in there as well,

703
01:21:19,041 --> 01:21:22,375
which you can usually find in the not in

704
01:21:22,375 --> 01:21:23,583
the read me, but in the source.

705
01:21:24,041 --> 01:21:26,958
So I've got like a whiskey audit command,

706
01:21:26,958 --> 01:21:28,583
and that'll just give you a table that

707
01:21:29,000 --> 01:21:30,708
prints out a whole bunch of the variables

708
01:21:30,708 --> 01:21:32,375
that I'm using within all these different

709
01:21:32,416 --> 01:21:35,416
classes, like where the composer home

710
01:21:35,416 --> 01:21:37,666
directory is, where the project directory

711
01:21:37,666 --> 01:21:39,625
is, where vendor things are being kept,

712
01:21:40,458 --> 01:21:42,000
like, and then ways to determine the

713
01:21:42,000 --> 01:21:44,083
platform and all that type of stuff, ways

714
01:21:44,083 --> 01:21:46,291
to determine if whiskey is being run

715
01:21:46,375 --> 01:21:47,458
globally or locally.

716
01:21:48,250 --> 01:21:51,125
So if you're trying to add in a little

717
01:21:51,125 --> 01:21:52,750
feature or a bug fix and things aren't

718
01:21:52,750 --> 01:21:54,875
working, you got some

719
01:21:54,875 --> 01:21:55,958
tools like that built in.

720
01:21:57,750 --> 01:21:58,166
That's awesome.

721
01:21:58,166 --> 01:21:58,791
That's awesome.

722
01:21:59,333 --> 01:22:02,166
Well, I guess we'll kind of any other

723
01:22:02,166 --> 01:22:03,791
sort of highlights or anything else,

724
01:22:03,791 --> 01:22:06,458
you know, that we didn't, uh, why I

725
01:22:06,458 --> 01:22:07,125
didn't ask you about

726
01:22:07,125 --> 01:22:08,333
as far as whiskey goes.

727
01:22:09,083 --> 01:22:10,166
Not that I can think of no.

728
01:22:10,541 --> 01:22:11,708
And it's a pretty small tool.

729
01:22:13,500 --> 01:22:14,458
So it's not really,

730
01:22:14,458 --> 01:22:15,916
those are the perfect ones.

731
01:22:16,500 --> 01:22:16,791
Yeah.

732
01:22:19,041 --> 01:22:19,375
Yeah.

733
01:22:19,375 --> 01:22:22,875
It's, uh, um, I forgot what I was trying

734
01:22:22,875 --> 01:22:24,208
to say there, but yeah, the, uh, I like

735
01:22:24,625 --> 01:22:26,416
the little small, well-defined tools, you

736
01:22:26,416 --> 01:22:28,208
know, and you just pull them in and they

737
01:22:28,208 --> 01:22:29,791
work and you don't really have to think

738
01:22:29,791 --> 01:22:30,583
about them too much.

739
01:22:30,583 --> 01:22:31,583
It just seems to,

740
01:22:31,583 --> 01:22:32,666
seems to make life easy.

741
01:22:33,583 --> 01:22:33,875
Yeah.

742
01:22:33,875 --> 01:22:36,375
That's kind of the theme that my buddy Ed

743
01:22:36,375 --> 01:22:38,375
and I are trying to take where we're

744
01:22:38,375 --> 01:22:39,291
building a suite of

745
01:22:39,291 --> 01:22:40,541
tools called scalpels.

746
01:22:40,833 --> 01:22:43,166
And so there's meant to be just very

747
01:22:43,166 --> 01:22:46,125
narrowly targeted sharp tools.

748
01:22:46,791 --> 01:22:47,875
So each one just does

749
01:22:47,875 --> 01:22:49,083
one thing and does it well.

750
01:22:49,291 --> 01:22:50,791
And we're just going to try to have a,

751
01:22:50,791 --> 01:22:52,458
like a suite of these ready to go for

752
01:22:52,500 --> 01:22:54,166
a Laracon and see if

753
01:22:54,166 --> 01:22:55,000
people are interested.

754
01:22:55,833 --> 01:22:57,041
It's not going to be like this giant

755
01:22:57,041 --> 01:22:59,250
revenue generator, but if we can pay our

756
01:22:59,250 --> 01:23:01,000
AWS bill, I think that'll be fun.

757
01:23:03,583 --> 01:23:04,500
Hopefully you don't get the dust.

758
01:23:05,458 --> 01:23:06,625
But yeah, I like those

759
01:23:06,625 --> 01:23:08,625
kinds of tools, just very small.

760
01:23:09,166 --> 01:23:11,208
Um, there's, you're not having things

761
01:23:11,208 --> 01:23:12,208
interacting with all

762
01:23:12,208 --> 01:23:13,208
sorts of other stuff.

763
01:23:14,125 --> 01:23:14,958
Limited complexity.

764
01:23:16,125 --> 01:23:16,333
Yeah.

765
01:23:16,333 --> 01:23:17,583
It's a good way to do it.

766
01:23:17,583 --> 01:23:18,333
That's awesome.

767
01:23:18,333 --> 01:23:19,791
So this scalpel tool you're planning

768
01:23:19,791 --> 01:23:21,625
launching sort of right around

769
01:23:21,708 --> 01:23:23,750
Laracon or sort of before or after.

770
01:23:26,000 --> 01:23:27,166
We're not quite sure yet.

771
01:23:27,958 --> 01:23:29,250
We don't even know if we'll have enough

772
01:23:29,250 --> 01:23:30,875
tools finished yet, but, uh,

773
01:23:30,875 --> 01:23:31,875
putting you on the spot there.

774
01:23:31,875 --> 01:23:35,166
We got about four or five tools that

775
01:23:35,166 --> 01:23:36,708
we're trying to get done in time.

776
01:23:36,708 --> 01:23:37,958
I don't know if we'll be able to.

777
01:23:38,791 --> 01:23:40,666
Um, so we'll see what happens.

778
01:23:42,625 --> 01:23:42,875
Yeah.

779
01:23:45,000 --> 01:23:45,500
That's great.

780
01:23:46,250 --> 01:23:48,791
Well, um, or any, any other thing, you

781
01:23:48,791 --> 01:23:50,208
know, maybe anything I miss,

782
01:23:50,291 --> 01:23:52,000
anything else you want to say before we

783
01:23:52,000 --> 01:23:53,625
close out this, um, this

784
01:23:53,666 --> 01:23:55,083
creator series spotlight.

785
01:23:56,416 --> 01:23:57,958
Um, yeah, go to get hub and

786
01:23:57,958 --> 01:23:59,125
give me a star on whiskey.

787
01:23:59,125 --> 01:23:59,958
It makes me feel good.

788
01:24:00,416 --> 01:24:02,416
And then follow me on Twitter.

789
01:24:02,541 --> 01:24:04,291
Um, follow me on YouTube as well.

790
01:24:04,291 --> 01:24:05,708
I started making a couple of videos.

791
01:24:05,708 --> 01:24:07,458
So if you just go to YouTube slash

792
01:24:07,458 --> 01:24:10,250
artisan build, that's, um, that's

793
01:24:10,250 --> 01:24:11,500
where I'm putting those videos out.

794
01:24:12,791 --> 01:24:14,958
And yeah, just seeing those numbers go

795
01:24:14,958 --> 01:24:16,625
up, it gives me the warm and fuzzies.

796
01:24:17,583 --> 01:24:17,833
Yeah.

797
01:24:17,833 --> 01:24:18,583
So those are wonderful.

798
01:24:18,708 --> 01:24:20,583
And we'll be sure we'll have all those in

799
01:24:20,583 --> 01:24:22,708
the show notes as well with links to

800
01:24:22,958 --> 01:24:25,666
the repos, his Twitter, his YouTube and

801
01:24:25,666 --> 01:24:27,250
sort of everything else.

802
01:24:28,166 --> 01:24:30,000
Um, I think this is going to conclude

803
01:24:30,000 --> 01:24:32,041
this, uh, episode and we want to thank

804
01:24:32,083 --> 01:24:33,666
everybody for tuning in and watching.

805
01:24:34,291 --> 01:24:36,000
And, uh, we will see you next time.

806
01:24:36,375 --> 01:24:36,541
Thanks.

807
01:24:36,791 --> 01:24:37,250
Thanks, Len.

808
01:24:37,958 --> 01:24:38,125
Yeah.

809
01:24:38,375 --> 01:24:38,583
Cheers.