
Chocolatey - with Gary Ewan Park
Durée: 48m5s
Date de sortie: 20/12/2023
In this episode, I was joined by Gary Ewan Park to chat about Chocolatey, and what it’s been like as a developer working on it. Chocolatey is a package manager for Windows, and it’s a tool that I’ve used for many years - so really enjoyed chatting with Gary about it!Gary is a Principal Software Engineer at Chocolatey Software and Microsoft Visual Studio and Development Technologies MVP and GitHub Star.For a full list of show notes, or to add comments - please see the website here
Hey everyone, welcome to the UnhandledExact from Podcast.
I'm Dan Clark and this is episode number 63.
And today I'm joined by Gary Park to chat about Chocrity and given this is a software
development podcast, not an IT podcast.
We're going to be talking about it from the angle of Gary's experience being involved
with developing it.
So welcome to the show Gary.
Thank you very much.
I'm happy to be here.
Yeah, I've got to be looking forward to this one.
I've been like a long town user of Chocrity, so it'd be nice to dig a bit under the covers
about like developing it and what it's been like over the years now.
It's been quite a while.
So could you introduce yourself to the listeners and just tell us a bit about what you do?
Sure.
So yeah, my name, as you said, Gary Ewan Park.
I'm a principal software engineer here at Chocrity.
I am a reasonably prolific open source contributor.
I contributed a few projects over the years.
So people might be familiar with the likes of cake and obviously Chocrity.
That's what I do.
That's my full time job is essentially contributing to open source and open source project.
Now obviously we have a commercial side, which helps pay my mortgage, which is good,
but it is at its heart an open source project that no one will be.
So it's been an interesting ride, let's say, in getting involved in Chocrity right back
when I first started with it to becoming a full time developer on it.
So it's been a fun ride and it continues to pay my mortgage, which is good.
It obviously changed how I work, because I now work fully remotely from my garage,
essentially, I created a small area in my garage where I could say I have a commute to work.
It is out the back door and into the garage, but I still have the ability to switch off
if you like.
So I cut down machines, I close the office door.
And I'm home at that point.
So I've still got a commute, but that switch took a while for me.
I don't know what it's been like for you if you do remote work as well.
It took me a while to get into that mindset.
Yeah, I think I've spoken to a lot of people about this and most people seem to be similar
with you.
It takes a while to get used to, but I seem to just fit it into it.
I think I'm kind of because I love what I do.
I don't feel that I need that homework divide.
It's kind of like I've got a work from a room in my house and it's just, I don't know,
it kind of blends together really, but I don't mind that.
I think some people are against that because I'd stress and everything, but I don't find it does.
So I think everyone's different really, isn't it?
I think there's an element of that.
I mean, when I first started doing remote work, it was funny, my wife basically said,
you can't be in the house because at the time she was at home with our youngest child
and she had a routine, she knew how she wanted to do things, etc.
And she just said me being in the house, trying to do work at the same time, would not work
for her because I would interrupt her routine.
And that's why we opted to essentially build an office out in the garage.
And that definitely helped from that point of view.
I'm quite lucky with it because we've got two kids, but even there,
I don't get interrupted that much so I can close the door.
And they come in like a few times throughout the day, but that's quite nice.
That's one of the benefits I see.
Definitely.
If I'm in a team's call, I can see my own webcam and I can see if they're leading,
parent, then they recognize, oh, dad is in a meeting, then they go back out again.
Sometimes they don't do that and come in when I'm in a meeting and it's like,
luckily I've got a mute button right in front of me, so I can press that and turn
around and say, no, I'm in a meeting.
And then they say, OK, then go out again.
I quite like that actually, it's kind of nice that you get to see a window into
all the people's home life really, I guess.
Some people don't like that, some people wouldn't like that.
That's private, that's separate.
But I don't mind that.
It's like if colleagues and kids come in and then they put them on the knee and they
say hello and everything, I think that's just nice, isn't it?
It is, it's very much you see other people as you wouldn't normally see them.
In an office environment, you wouldn't ever see anything like that.
Being able to get an eye into what people's life is like at home, it's great.
I mean, I don't have her with me just now,
but normally I have my dog Bailey in my office.
I've taken her out of the office for the purposes of this recording.
But normally she gets involved and jumps on my knee as I'm in calls regularly.
So she's a regular feature on our team meetings and things.
But that's just it's completely allowed.
I mean, it's expected that there are going to be those interruptions.
And it's one of the benefits, as you say, of remote work, being able to do that
and have that essentially family time, if you like, that you wouldn't get in an office
environment. And I think I said to you before, I think I would struggle to go back
to an office environment now.
I don't miss the commute to work at all.
When I was driving backwards and forward to town, I like just being able to step
out the back door and being at my office.
So it's a lot of benefit to having that ability.
And I really like it.
I've got a cat called and we call them scratch after the programming, programming thing.
So yeah, he's got a chair over there.
So he kind of comes in, he's like sleep like 99% of the time.
So he just comes in, goes on the chair and falls asleep, which is quite nice.
We're thinking about getting like, should we get a dog or a cat?
But then we thought, we're glad we got a cat because we thought
we like the fact that he's around, but not needy at all.
And I don't know, I don't know, there a dog will be like too needy.
So we have a cat as well.
And as you say, it's very much he owns the house,
comes and goes where he wants to and he graces you with your presence every so
often through the day, but he is very much his own person.
But Bailey is very much a chute a cockapoo.
So their breed sort of like to have attention.
So she'll be sitting on my knee when I'm trying to do work
and I'm up against the desk, but it's a nice problem to have.
I've always wanted a dog, I genuinely always wanted a dog growing up.
I never thought I kind of resigned myself than never having one.
And then just at the start of the pandemic,
my wife suggested that it might be a good idea to get a dog.
And then, yeah, that's where we are now.
So it's I wouldn't change it.
I wouldn't change any of them.
Nice. Yeah, we had a weird one with our cats.
Cats obviously don't normally go up for walks with you.
But me and my youngest went for a walk last night
and he came out and started following us.
So we went for a decent walk and he's just like all the way.
He wasn't actually with us, but he was kind of like just on the side,
darting with, almost like a spy that was trying to follow you.
But he was like staying with us, but just suitably away from us
to not be with us, but he was with us.
It's quite funny.
But yeah, we should probably talk about
technology or some things off of development related.
Right.
Before we do dig into chocolate, just a quick reminder
to the listeners that this podcast now has its own,
well, not now, it's been for a while now, has its own Discord community.
So if you head over to the website unhandledexceptionpodcast.com,
there's a big Discord button there.
And also the podcast is sponsored by Everstack,
which is my own company providing software development
and consultation services for more information.
Visit Everstack.com.
So we should probably talk about saying what
chocolaty actually is before we talk about the story of developing it.
I do notice that the listeners can't see this obviously,
but I can see you've got chocolaty branding with your cap on.
I do. Nice, very nice.
So chocolaty is a package manager for Windows.
So what that means is if you have a piece of software
that you want to install on your machine and you want to be able to maintain
that over time, chocolaty is a tool, a utility tool that will help you do that.
Pourquoi?
Vous voulez que vous utilisez, c'est que je vous ai toujours utilisé l'exemple de
le dire, vous voulez installer Paint.net,
normalement, vous allez au site de la web, vous avez trouvé l'application,
vous avez déploie, vous avez découvert ce install que vous avez besoin.
32 bits, 64 bits, etc.
Ou est-ce que c'est la version de la Store Windows?
Once vous avez découvert toutes ces choses, vous pourrez pouvoir
avoir l'application installée ou vous pouvez juste faire
chocolaty installer Paint.net de la commande.
Parce que quelqu'un d'autre, un maintenance de ce package,
a découvert tout ce qui est pour vous.
C'est ce que c'est.
Je me suis dit que j'ai commencé à utiliser ça longtemps,
je me suis dit que je voulais créer ce que nous avons
referé pour les images de la machine que nous avons
créée, donc nous avons voulu un moyen de pouvoir
le faire à un point non-pouvoir.
C'est là que chocolaty est allé, c'est le point de la
formation de la formation, et ça fait le même chose
que de nouveau, de fois en fois, comme nous avons créé
ces images de chocolaty.
Et comme un contribut de communauté, j'ai commencé à
être involvement en chocolaty.
C'est là où j'ai commencé ma main avec PowerShell,
quand j'ai commencé à utiliser PowerShell.
Certains de mes collègues me disent que je n'ai
pas encore appris PowerShell et que je ne devrais
jamais écrire quelque PowerShell, mais c'est bon.
Tu as un TAPGBT pour ça maintenant,
donc...
Exactement.
Tu peux juste dire,
ce que l'est le meilleur moyen de écrire ça ?
Je me suis dit que mon PowerShell
ressemble à C-Sharp.
Quand tu apprises ton PowerShell à TAPGBT,
c'est la meilleure façon de faire ça,
est-ce que tu repris ça ?
Tu ne devrais jamais écrire PowerShell encore.
C'est ça.
C'est exactement ça.
C'est dans l'une des voix de mes collègues,
c'est un peu synchronisé.
C'est bon.
C'est ce que c'est.
C'est un outil de développement que tu voudrais utiliser
sur un basis de la date,
de la machine à la date,
mais les organisations vont s'adresser
et ajouter ça à leur
complete software lifecycle, si tu veux,
et de la maintenir tous les machines
dans leur fleet à la date,
et de les maintenir de manière qu'elles veulent être maintenues.
Et quand je dis que c'est un manager de package,
ce n'est pas juste pour l'installation des applications,
c'est pour l'installation des configurations,
c'est pour l'installation de
quelque chose que tu peux faire comme PowerShell script,
tu peux maintenir ça dans un package de chocolat,
ce qui est ensuite versionné,
et puis tu peux maintenir cette version en temps.
Donc je pense que c'est un très utile.
Évidemment, j'ai switché l'envers
pour être, plutôt que juste un
contributif de communauté,
j'ai opté de devenir
en temps entier en travaillant sur ça.
Et je l'ai été pour presque six ans maintenant,
ce qui a été une excellente route
pour marcher par ça.
C'est bien.
Comment tu as dit que tu as mentionné
les containers de maintenance avant ?
Tu as dit que tu as des packages de maintenance.
Donc je suis en train de présumer
beaucoup de softwares qui peuvent être
déployées avec le chocolat.
Le package de chocolat
est maintenu par les gens
qui n'ont pas créé le software initial.
Oui.
Tu trouves que parfois
ça se déploie avec certaines packages ?
Ou comment ça fonctionne avec juste
en prenant la preuve que tout est en date ?
Toujours installé dans le plus tard ?
Il y a un couple d'aspects pour ça.
Donc ce que tu touches
là-bas est la différenciation
entre ce que c'est de chocolat.
Donc chocolat pour moi est le chocolat.exe,
le truc que tu exécutes sur la ligne de commande.
Et ce que je pense que tu touches
là-bas est la réplique de la communauté de chocolat.
C'est là où le set de packages de défaut
que chocolat va consommer.
Donc c'est disponible sur community.chocolat.org.
Donc c'est un...
C'est un new get feed.
Donc si tu es familier avec newget.org,
communauté.chocolat.org est un new get feed
de la même manière que newget.org.
Et par défaut, c'est là où le chocolat
va regarder et installer et apprécier les packages.
Ce sont des packages qui sont
presque universément
maintenues par les contributors de la communauté.
Donc ils vont avoir un intérêt vesti
dans une particularité et ils ont fait le travail
de créer ce packages
et puis de le mettre à la communauté.chocolat.org.
Mais il y a évidemment un délai entre ça
parce que
si une application a été élevé,
quelqu'un doit venir et créer un packages pour ça.
Donc il y a un set d'updates automatiques
que beaucoup des maintenanceurs utilisent
et ce que ça termine
est un travail plané sur un système CI
et normalement, il fonctionne chaque 6 heures
et ça va se passer et vérifier
contre les applications de l'application
typiquement et voir que c'est une nouvelle version
donc ça va automatiquement
faire un script pour générer le packages de chocolat
et puis mettre ce packages de chocolat
à communauté.chocolat.org.
Donc il y a un délai typiquement
pour les plus de
les packages populaires
que les packages de la download de la download.
Vous avez de la nouvelle version de packages
de la communauté.chocolat.org
dans quelques heures de l'application.
La seule raison que ça ne peut pas arriver
est si le site upstream
a changé comment on annonce
une nouvelle version.
Parce qu'il n'y a pas de standard de faire ça.
Ça peut être un nouveau release GitHub,
un nouveau entrée sur un file JSON
qui est installé ou un site web
qui dit que c'est la version de l'application.
Donc toute l'automation autour de ça
est essentiellement, comment je peux
en profiter de la version de l'application
que ce soit pour ensuite créer un packages de chocolat.
Et parfois ça ne se débrouille
parce que le site web est réveillé
ou quelque chose a changé.
Mais c'est là où nous sommes
sur les maintiennes
ou les maintiennes de la communauté
pour nous aider avec les maintiennes
de ces packages.
Donc c'est un effort communique
sans les contributaires communiques
et il y a beaucoup de ces.
Et c'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
C'est ça que je veux dire.
Je veux dire.
C'est ça que je veux dire.
Il y a un trend dans la communauté de chocolat
de la communauté de chocolat
qui embedent ce qu'ils peuvent
parce que vous avez la plus résilience
et la installation des applications.
Il y a des limites en termes de
de la bagage de la bagage
qui permettent de hoster
la communauté de chocolat.org.
Je pense que c'est à la dimension de 200 megabytes.
Si vous allez par-dessus,
il y a des raisons techniques
pour que nous ne puissions pas vous soumettre
à la communauté de la dépositorie.
Donc, ce scénario,
vous pourriez aller au
installation de cette bagage,
vous allez dire que vous devez aller ici
et mettre ce file sur le site.
Mais, encore une fois, les packages d'embedonnement
sont la façon de faire
un installement en termes de
de la application.
Je pense que pour jouer le décembre de la communauté de chocolat,
comme un utilisateur de chocolat,
je pense que mon préférence
serait de faire
si je fais chocolat install,
pour que je déloigne les binaires officielles
plutôt que d'embeder dans le package de chocolat.
Je pense que c'est un con de pros et cons,
ma question esticion landscape.
C'est tout ça !
Je la glitterıyorum ?
Oui,ré payloade moi aussi !
Mais comme il y a aussi un
cios ¿De quel Elliott lonche teaching?
C'est-à-dire que je 4...
Dans un truc,
il y avait une grosse bouche de chocolat
est une touteıylaire.
Ça ne me dérange pas de hoster aussi sur GitHub releases,
et ça ne me dérange pas de hoster aussi sur mon site direct en download.
Mais ça veut dire que les façons différentes
sont différentes que je peux permettre de les installer.
Et j'ai un bias sur le chocolat,
mais aussi de hoster sur GitHub releases
ou de hoster sur mon site,
ça veut dire que les autres managers peuvent venir
et faire ce qu'ils veulent avec les applications que je crée.
C'est vraiment ce qui marche pour vous, à l'heure de.
Oui, ça semble super flexible.
Je sais que vous avez mis en place des notes de shared
que version 1 a été réalisée en mars dernier.
Oui.
Je sais, chocolat a été réalisé pendant beaucoup, beaucoup d'années.
Donc, on peut parler de version ?
Bien sûr.
C'est une question très grande.
Donc, chocolat est un produit
qui a été 11 ans
pour avoir un release 1.0.
Donc, nous, chocolat, supportent ou suivent la version semantique.
Donc, même avant la release 1.0,
même si nous nous sommes achetés à 0.10 point,
quoi que ce soit, nous avons été
en train de faire la version semantique.
Donc, la version minère,
nous étions en train de faire une version majeure, si vous voulez.
Donc, à 0.9 point, quoi que ce soit,
nous avons ensuite eu un changement de breakage, nous avons été à 0.10.
Donc, nous avons été un peu suivis en version semantique,
mais nous n'avons pas voulu avoir un release 1.0
jusqu'à ce que certaines autres choses soient en train de se mettre en train.
Et nous avons été à un point où nous savions
ce que nous étions achetés et nous savions
ce que les gens pouvaient rédire.
Et nous avons été à ce point,
en mars 2022,
donc c'était un grand effort pour y arriver.
Mais une des raisons qu'on voulait avoir
pour un release 1.0,
c'est que chocolat, comme produit,
pour 1.0,
c'est qu'il y a encore des margements,
ou des margements,
le framework.net 4.
Donc, juste pour être clair,
ce n'est pas...
ce n'est pas le framework.
C'est ce que je referai.
C'est le framework.net original.
Donc, nous sommes encore en train de faire un framework.net 4.0.
Et il y a beaucoup de raisons pour ça,
mais l'une des raisons principales
est la compétition de l'arrivée.
Nous savons toujours que les gens utilisent la chocolat
sur les systèmes d'opérations plus vieilles.
Alors,
pendant que je peux regarder tous les vidéos
de différentes confrances
et voir ce qui est en train de sortir
dans la nouvelle ligne de 1.net 8,
comme produit,
nous sommes encore en train de supporter
le framework.net 4.0.
Et ce qui était intéressant,
j'étais récemment en confrète,
j'ai went à la CEC Oslo,
et Isaac Levin était là,
en faisant un bon parler,
mais Isaac Levin a commencé
à passer l'audience,
il a dit,
« Pouvez-vous vos mains si vous êtes
en train de produire 1.net 7.
Pouvez-vous vos mains,
et puis, vous vous gardez vos mains
si vous faites 1.net 6.
»
Il y a...
Je ne pense pas...
Je ne pense pas qu'il pensait
qu'il allait se mettre en train
comme ce qu'il a fait.
Mais je m'en avais gardé la main
parce que je peux dire
que nous avons, en production,
le framework 4.0.
Donc, c'est un challenge
parce que
beaucoup de nouvelles choses
qui sont venus nous utiliser,
mais nous ne pouvons pas.
Donc, nous voulions aller à la 1.0
pour qu'on puisse,
comme produit,
bouger le passage
d'avoir à l'utiliser
la CEC.
Donc,
quand nous avons été à la 1.0,
nous pouvons ensuite
faire des choses.
Parce que nous avons été
à la 1.0,
et les gens savent
que c'est la 1.0 qu'ils peuvent relier.
Et puis, à ce point,
nous pouvons commencer à regarder
ce qu'il faut faire
pour augmenter cette application
pour ce que nous avons choisi
avec le framework 4.8.
Donc, c'est un grand emploi
à la 4.5.
Certaines choses
ont été faites et ne fonctionnent pas.
Certaines de nos dépendances
ont causé des problèmes,
mais nous travaillions
contre ce 2.0,
où nous nous le portons
avec
le framework 4.8.
Mais aussi, pour
les gens qui savent
ce qui est en train de le faire,
nous avons également ajouté
la support pour Newget V3.
Donc, quand vous utilisez
Newget.org,
il y a deux manières
de consommer les packages
de Newget.org.
Il y a le
O-Data Feed,
qui est le V2 Feed,
et puis, il y a un JSON Feed,
qui est le V3 Feed.
Donc, Choclite est un produit
qui n'a jamais eu support
pour V3,
en tant que 2.0,
de Choclite CLI.
Mais ça, en itself,
était un grand réel.
Parce que
les libraries Newget
je ne sais pas si vous avez
eu le privilège
de travailler avec les libraries Newget.
Il y avait un switch
fondamental sur comment ces choses
fonctionnent entre version,
ou autre.
C'était un grand changement.
Il y avait un cas
où il y avait un assembly Newget.core,
un seul assemblage,
qui a fait tout.
Et puis, il a brouillé
peut-être 15 assemblages différents,
ou des choses différentes.
Donc, c'est un changement logique,
parce que tout est maintenant
compartementalisé,
et tout fait sens.
Quand vous croyez,
mais ça, croquant,
a pris un temps.
Mais ça, c'était un path intéressant
pour aller au point
de voir,
qu'est-ce qu'on doit faire
pour arriver à 4.8.
Et puis, ça commence
à mettre nous en position
où nous pouvons commencer à penser
sur ce que nous pouvons faire
pour arriver à la core.
Ou, comme c'est maintenant
un brand qui est juste.net.
Mais, ça, c'est un challenge
pour un autre jour.
Ce n'est pas un challenge
que nous avons en train de prendre.
Ce sera V3 ou V4,
parce qu'il y a beaucoup d'autres choses
qu'on veut faire dans la pipeline.
Mais c'est intéressant
de débaisser
dans le team.
Nous pouvons utiliser
cette nouvelle chose de shine
ici,
mais notre produit core
est encore sur
une fréquence plus ou plus
pour des raisons.
C'est un balance
intéressant
entre ce que nous pouvons
en faire
et ce que nous pouvons en faire
en ce moment.
C'est bien, c'est bien.
On va le mettre.
Surtout si tu vas à la NDC
et tu vois les gens
parlant de la nouvelle shine.
Il doit être très frustré.
Je sais que dans
version 2,
dans nos notes,
tu as mentionné de test.
C'est très intéressant
de tester des choses.
Et tu as mis
des tests de cuisine et de peste,
qui est...
Oui.
Je l'ai mis de peste.
Je n'ai pas mis de peste de cuisine.
Donc,
avec la release de 2.0
parce que nous avons eu
un switch
dans les internes,
nous voulions être
en position où nous pouvons
dire
qu'avec une certaine certainité
qu'on n'a pas broken
à personne,
et que l'une de les
fonctions
continue à travailler.
Donc, la façon que tu
testes les applications,
comme tu le sais,
il y a des tests unitaires,
des tests de l'intégration
et je sais que tu es un fan
de spinning up Docker
et de avoir
Redis
et un sequel
que tu peux spinning up
et tout.
Et tout est bien.
Donc, notre version
de ça
est
que nous faisons
tous nos tests unitaires
et nous faisons des tests
d'intégration.
Mais au bout de l'année,
nous voulons savoir que
le résultat de la
chocotote EXE
a le désir de l'exemple.
Nous voulons être
en position de spinning
un environnement
et de faire un
chocotote EXE
pour faire quelque chose
et puis faire des assertions
sur le point de vue
ou ce qui peut être
en position de la production
ou ce qui peut être
en position de la production
ou un fil de log.
Nous voulons être
en position de la production.
Donc, nous avons
fait un peu de tests
test.
Donc, les tests test
sont typiquement
testés dans la PowerShell
et vous pourrez
faire un test test
sur le point de vue
de PowerShell
et, à nouveau,
faire des assertions
sur le point de vue
mais dans un test test
vous pouvez absolument
faire un EXE
et faire quelque chose.
Donc, nous
avons créé un bunch
de tests test
sur le résultat
de la chocotote EXE
et puis
vous allez au next
niveau
qui est
que je veux pouvoir
contrôler
l'environnement que je suis
en train.
Et c'est là
où la chocotote test
s'est défini.
Donc, la chocotote test
est une possibilité
de, disons,
créer un VM,
installer un bunch
de choses
et puis,
faire un bunch de tests.
Donc, la chocotote test
a des détails
pour les tests
testés.
Une des
qui est
des testés pour nous
il y a
une chocotote
testé
qui nous permet
d'arriver
et de
les tests testés
dans des environnements.
Donc, nous avons spiné ça
dans le service Windows 2016,
dans le service 2019,
et puis, nous collons
tous les résultats
et nous
voir ce qui s'est passé,
voir ce que nous avons brûlé
ou, plutôt,
j'espère,
faire une assertion
que nous n'avons pas brûlé
tout ce que nos tests
continuent à passer.
Donc,
c'est
je vais dire
que c'est un moyen
d'en faire des choses,
mais c'est pas assez
l'autre moyen.
Parce que, dans la nouvelle
chine,
quand je vis aux conférences,
ils en parlent
en parlant
et en parlant
en parlant
en parlant
et l'en parlant
en parlant
et en parlant
achetement
tätä
d'un
en embrouillant
comme tout le maman
celebrates
nous lotta
ksen
S
c'est un AMI dans AWS.
On va tester ce AMI,
on va installer ce qu'on a essayé,
ce qui est le plus petit version de la chocolat,
et ensuite on va exercer tous ces tests
par Pester.
Donc c'était pour nous,
c'était une grande introduction
pour en mettre tous ces choses ensemble,
pour avoir un point où on pouvait
tester tout,
pour savoir que,
quand on a repris,
parce que à ce point,
nous sommes maintenant en version majeure.
Comme nous allons à 2.0,
nous savons que nous allons briser un peu de choses,
mais nous voulons savoir ce que nous avons brisé,
en tant que version 2,
et puis les gens vont en dire,
« C'est pas le cas anymore. »
Nous voulons savoir ce que ne fonctionne pas,
et nous voulons savoir ce que fonctionne.
C'est pourquoi la 2.0 élevé
a pris tant de temps,
parce que ce n'était pas nécessairement
les changements de code que nous faisions,
c'était,
nous voulons faire sure que nous n'avons pas brisé personne.
Donc c'était un très intéressant tour
pour commencer à finir
et à obtenir notre propre infrastructure.
Parce que,
comment dire ça dans un bon façon ?
Quand nous avons commencé à chocolat,
ou quand j'ai commencé à chocolat,
c'était moi et quelques autres gens.
Donc ils m'ont fait croiser en faisant des choses.
Et je me suis trompé sur les VMs,
et je m'avais créé l'infrastructure,
et j'ai fait tout ce que je voulais.
Et je pensais que c'était bien.
Et puis nous avons un équipe d'optime
qui a fait tout ça,
et qui dit qu'on ne peut pas faire
tout ça parce que vous n'avez pas fait ça bien.
Donc maintenant que nous avons l'optime en place,
tous nos infrastructures
sont en un mieux place que l'on était.
Donc beaucoup de ce que nous faisions,
et beaucoup de ce que nous faisions,
pour un projet d'open source,
et maintenant plusieurs teams
en délivrant et en tentant de le faire
pour qu'on ne peut pas le faire.
Donc, encore une fois,
c'était un journey intéressant
pour aller de moi et quelques autres gens
en faisant tout,
en faisant des choses plus structurées
et un moyen d'understruire les choses.
Donc c'est un journey intéressant aussi.
C'est beaucoup,
surtout en regardant un petit company
qui se développe,
et en faisant des teams d'optimes,
oui, c'est certain.
Oui, avec le test,
c'est assez intéressant,
parce que, comme vous le disiez,
je fais beaucoup d'applications,
de développement,
pour que ça soit sensible
de mettre un database en doc ou quoi-même.
Mais puis, évidemment,
comme vous le disiez avec Chocrity,
c'est l'outil de ce qu'il faut,
est de installer le software
dans un système d'opérations.
Donc c'est comme ça,
je n'ai pas entendu de cette cuisine test,
mais ça semble vraiment utile.
Oui, c'est un autre chose
pour mon long liste de choses
pour le lire.
C'est un des tools,
c'est sous,
c'est de chef.
C'est où ça vient.
Donc ils ont un peu de tools
et la cuisine test est une de ces.
Maintenant, sous la honte,
la cuisine test peut être utilisée
en végrant pour les vm.
Et il y a différents providers
où vous pouvez le faire.
Donc je peux le faire en végrant
localement sur ma machine
et exécuter tous les tests.
Et à ce point,
je vais utiliser le végrant
comme provisioneur
pour les vm.
Sur ma machine.
Mais où on le fait sur notre système CI,
la cuisine test
orchestre en végrant
pour utiliser le provisioneur AWS.
Donc tous les vm.
sont occupés dans le cloud.
Mais à ce point,
ce n'est pas agnostic
d'une manière particulière de faire des choses.
Vous pouvez trouver les provisioneurs
dans la cuisine test
pour dire,
OK,
venez les vm.
Localement ou venez-les dans le cloud.
C'est assez flexible
à ce point de vue.
Ça ne marche pas toujours,
je vais être honnête.
C'est une des...
Parce qu'il y a beaucoup de parts
et nous commençons à parler
d'une connexion de vm.
Vraiment et de ne pas être créées
en temps pour faire
tout le provision qui doit arriver.
Et il y a des informations
pour les logs.
C'est difficile.
Je sais que à moins un couple de gens
et les équipes ont testé.
Mais si vous avez le vm
et si ça fonctionne,
le niveau confortant
que vous avez
pour acheter un produit
devient beaucoup mieux
parce que vous savez
que vous avez cette suite de tests
qui se sont dépassés
dans le background
pour faire sure
que tout le monde continue
à travailler le manière dont vous voulez.
Et c'est vraiment bien
quand vous avez un fail
parce que c'est quelque chose
que vous avez faimé.
Mais vous aussi savez
que vous avez déclaré
avant de sortir de la porte.
Donc c'est ce que
le niveau confortant
est augmenté
quand nous avons tout ce test
et l'infrastructure en place.
Mais c'est aussi
une des choses
que nous avons seulement changé
en fait.
Un peu de test
et de test kits et de choses.
Ce que nous avons fait
internement.
Juste recently
nous avons
évoqué
le test kits et test kits
dans le projet de la
source de la porte.
Avant,
tout ce test et test kits
et test kits et tests
étaient faits
dans notre propre infrastructure.
Mais nous avons récemment
évoqué le test
dans sa propre repository.
L'idée de ce test
est que,
en faisant des changements
pour la source de la porte
au point de vue de l'exe,
vous aussi
vous vous exécuterez
et vous configurez
les tests test.
En même temps.
Donc,
deux scopes de travail
tout se passe
en même temps.
Et l'idée est que
j'espère que
les contributions d'open source
quand elles viennent
ne vont pas être un changement de code.
Il y aura aussi
un test de test
ou un test de modification
pour savoir
que ce nouveau piece
de fonctionnalité qui est
testé
en même manière
que nous voulons le faire
en interne.
Oui, c'est le cas.
En le côté autre,
vous avez le test
pour faire sure que
vos changements sont en train de travailler.
Je vous demande
parce que je suis
plus recent,
je suis plus intéressé
dans l'observabilité
dans la télévision
dans l'open source
et tout ça.
Vous vous tracons
et avez-vous une télévision
sur les éros
que l'anus de l'exe
peut faire
ou tout ça.
Donc,
je vais dire
non,
mais c'est dépendant
de qui vous êtes.
Donc,
le code de l'exe
n'a pas de télévision.
C'est en train de travailler,
il n'y a pas de la
C'est une décision
que Rob Reynolds,
le founder
de la chocquette,
a fait
juste à la fin.
Donc,
il n'y a pas de concept
de ne pas m'en parler.
La seule chose
de l'exe que nous avons
est que
si vous vous rendez
le code de l'exe
sur votre machine,
vous allez
installer
tout ça.
Nous verrons
les réquis
pour la
package
de CCR
pour être déploadée.
Mais c'est la
décision,
où ça va,
on ne sait pas
ce qu'ils font.
Donc,
il n'y a pas de
tracability,
et c'est
un benefit.
Parce que
si vous installez
les applications
sur votre machine
ou vous
l'étendez,
je ne veux pas
que cette information
se dévile
dans l'Ether.
Les gens
ne doivent pas
savoir
ce que je fais
et ce que je fais
en local.
Donc,
les managers
font
cette décision
et décident
qu'ils veulent
pouvoir tracer
des choses comme ça.
Mais nous,
les chocolats,
ne le faisons pas.
C'est un
coup d'oeil,
parce que
à ce point,
on ne peut pas
voir les édits
que les gens
ont.
Nous sommes
en train de
créer des
problèmes,
ou si c'est
un customer
qui nous
accueille,
ils vont
mettre
un support
sur leur billet.
Donc,
quand nous avons fait
le 2.0,
il y avait
quelques
problèmes
de tracage
et c'est peut-être
pourquoi vous reconnaissez
qu'on est maintenant
en 2.2.2
parce qu'il y a
quelques choses que nous
devons fixer
après le réel 2.0
mais tout ça
a été de
des feedbacks
qu'on a
d'autres utilisateurs
et des customers.
Parce que
nous n'avons pas
de tracéabilité
en termes
d'exception
quand les outils
sont utilisés.
Nous avons
commencé à
regarder
l'observabilité
pour l'application
de l'infrastructure
mais
le docker a
déjà vu.
Non,
il n'y a rien.
Oui,
c'est un peu
un peu
double-edged,
mais
d'une manière
bonne pour
voir si
il y a des
problèmes.
Mais d'une
autre,
c'est bien
de dire
qu'on ne va pas
envoyer
d'informations
sur
ce que vous vous installez
sur le point de vue de la privé
?
Je pense
que
vous avez
parlé de l'agriculture
aussi.
C'est un peu
long-temps
depuis que
j'ai utilisé
ça.
Je me souviens
que
il y a
beaucoup d'autres
qui ont
C'est un peu
plus
flakie.
J'ai utilisé
ça
avec un
tout
de la
végantie.
Mais
c'est un peu
long-temps.
Je
j'ai
l'impression
que
je fais des
apps
parce que
on est
un nouveau product
de la
végantie.
Je
parle
d'un
bloc
de
des
Mais
c'est un
environnement
multi-computé.
C'est un peu
plus
Je
d'un
bloc
machines.
d'un bloc
des
machines.
Mais
je
bloc
de
Mais
d'un
bloc
de
des
machines.
Mais
une
poignée
d'une
poignée.
Mais
c'est
un
bloc
de
végantie.
Je
parle
d'une
Mais
je
d'une
bloc
de
végantie.
Mais
je
parle
d'une
poignée.
Mais
d'une
poignée.
poignée.
Mais
d'une
bloc
d'une
poignée.
Mais
de test. C'est absolument le tool que nous avons besoin et le tool que nous utilisons.
Cool. Donc, nous sommes probablement en train de faire de l'argent, mais,
et ce qui est venu de la V3 ?
Donc, la V3 de chocolat, nous avons des plans, il n'y a pas de plan ferme,
donc évidemment, les choses changent et les priorités changent, mais nous sommes activement
regardés à ce qu'on doit faire en termes de soutien pour dotnet, le nouveau dotnet. Il y a
peut-être des issues pour nous en et autour de ça. Donc, par exemple, nous signons tous nos
artifacts de chocolat, donc le CXC est signé, tout le cXL est signé. Je sais que
il y a des issues avec le regard de signer et le référence de l'assemblée strong.
Quand vous vous parliez au dotnet, nous n'avons pas été prêts à savoir exactement ce qu'il faut
faire là-bas, parce que, internement, dans le CXC, nous faisons beaucoup de réflexion,
et c'est ce qu'on tient à la extension de chocolat. Donc, encore une fois, je n'ai pas voulu
regarder cet endroit, parce que je ressens que ce sera ici les dragons, il y aura des choses
qu'on doit faire. Donc, c'est un item roadmap, et j'ai commencé à jouer avec les
likes du dotnet upgrade assistant, que si vous cliquez un bouton et on va automatiquement
vous apporter au dotnet, ce n'est pas going to happen pour nous, mais ça peut nous
faire partie de la ligne. Mais il y a aussi une idée assez forte de ce que j'ai voulu
faire dans le cas de chocolat, en termes de la seule peinture de glace à travers votre computer.
Donc, pas seulement en savoir ce que les packages que vous avez installés, mais aussi
en savoir quel que soit le dotnet global de l'installation, ce sont les features de Windows que vous avez installées.
Donc, si vous vouliez faire un export de chocolat de votre machine, pour le mettre à nouveau,
ça va vous donner toute cette information et la révision de cette machine pour être
à la même point. Donc, je pense que nous avons tous les blocs de la construction pour tout ça,
dans le cas de chocolat. Donc, je veux voir ça être installé et pouvoir
prendre ça à travers l'environnement que vous avez emploié. Mais pour moi, c'est
là où nous sommes maintenant. Il y a aussi des choses commerciales que nous travaillons,
nous avons des nouvelles releases de notre management central chocolat. Et il y a
des choses d'excité qui sont en train de se faire descendre la ligne de piper à ce point.
Donc, c'est, en fait, je travaille pour une compagnie d'open source qui est en
manière de la priorité en termes des aspects commerciales, mais, encore, c'est un balance
entre l'envers de l'open source et ce que nous pouvons provider pour nos customers commerciales.
Oui, ça fait le sens. Comme vous le disiez, vous allez payer un mâle.
Oui, c'est vraiment un point de vue. C'est un point de vue.
Avec l'assistance de l'upgrade, est-ce que l'Isaac Levin, vous l'avez mentionné?
Il y avait un talk avec l'Isaac, sur l'ONC.
Oui, il a fait un talk à Docteur Dock, pour l'Ontario Group I1.
Il avait parlé de l'upgradation de toutes les versions de Docteur.
Donc, il a démarré l'assistance d'upgrade, ce que vous avez juste mentionné.
Et c'est l'autre. Amazon, AWS ?
Oui, il y a un tool AWS que nous allons faire aussi.
Oui, il a démarré les deux.
Mais, comme vous le disiez, c'est un démon où il a été pratiqué et réhabilité.
Et ça fonctionne. C'est un truc sur un projet réel.
Ce que je suspecte de nous arriver, c'est que le Chocodot EXE,
en soi-même, dans toute la probabilité,
va juste travailler. Mais quand nous commençons à parler de le Chocodot EXE,
pour mettre en place l'assistance de l'assistance,
pour faire des aspects commerciales, c'est aussi là que nous allons commencer à avoir des problèmes.
C'est la route que nous n'avons pas été parvenus.
Nous n'avons pas essayé de faire un end-to-end
de l'assistance de l'assistance de Chocodot et de l'assistance de Chocodot en travaillant sur Doct.net.
Mais il y a eu des efforts communiques
pour faire le Chocodot EXE en soi-même,
compilant et en ayant le Doct.net.
Et ça fonctionne.
Mais c'est l'autre part que nous n'avons pas investigué.
Oui, je pense que c'est le bon truc de l'assistance d'opérance.
Si vous pouvez avoir des efforts communiques,
vous pouvez faire des parts pour vous aussi.
Juste de vous faire circuler un peu,
le Doct.net 4.8 et l'obligation de utiliser
le NUGP3,
un partage de l'assistance de l'assistance de Chocodot
était fait par un contribut de communauté,
par le nom de
The Cake Is A Lie,
c'est sa main sur GitHub.
Il a fait un travail phénoménal
pour nous faire un point où nous pouvons même penser
à la fonctionnalité de la production.
Et puis, où nous avons appris et l'aimé,
c'était que c'était tout le test et l'infrastructure,
c'était tout le truc que nous devons faire pour faire le travail.
Mais le partage de l'assistance de l'assistance
de la production était un contribut de communauté.
Et c'était génial de voir
cette fonctionnalité de la production
et de la production de la communauté.
Très cool.
Donc, avant de nous changer aux tips de dev,
est-ce qu'il y a quelque chose que nous n'avons pas fait ?
Non, pas de choses.
C'était un bon chat.
J'ai aimé.
Je pense que nous avons découvert les choses
que j'ai espérées parler de.
C'est un bon plaisir.
Oui, c'est bien.
Je vais voir mes softwares installées
et voir ce qu'on a fait.
Je pense que je n'ai pas utilisé le chocolat
pour faire des tarteaux.
Je pense que j'ai mon liste de packages de chocolat
de source de control.
Je dois m'assurer que ça soit à la haute.
Non, absolument.
C'est ce que nous trouvons les gens.
Ils ont leur propre script qu'ils maintiennent
ou ils peuvent avoir un file de package.config
qu'ils maintiennent.
Et à ce point, c'est juste que
les chocolats installent ce truc.
Et votre machine est,
en tout cas, envers la place où vous avez besoin.
C'est le but.
C'est où ça a commencé.
Et c'est toujours le ténère de chocolat.
C'est ce que nous espérons que nous pouvons provider pour les gens.
Bien.
On va faire des tips de dev.
On peut.
Donc, j'ai un truc.
Je sais que vous êtes un fan
de garder les choses en bas et en bas sur la ligne de commande
et de mettre des shortcuts pour tout.
Donc, l'une chose que j'utilise
est que nous faisons une combination
de github et gitlab.
Donc, nous avons tous les systèmes de poste.
Et pour quoi que ce soit le cas,
github signifie un pull request
et gitlab signifie un merge request.
Donc, quand vous commencez à utiliser
le tool de commande et le tool de commande et gitlab,
un parle d'un PR
et un parle d'un MR,
ce qui est juste complètement confusé.
Oui.
Mais les outils de l'utilisation,
les outils de commande et de l'utilisation
ont le concept de l'aliése.
Donc, vous pouvez aussi faire,
vous pouvez faire, par exemple,
plutôt que de faire un checkout ghPR,
vous pouvez créer un alias pour juste ghCO.
Donc, vous faites un checkout
avec le tool de commande et de l'aliése.
Mais, vous pouvez aussi faire un alias pour PR
pour changer le tome MR en vice versa.
Donc, pour moi,
je peux maintenant faire ghMR
et faire glabMR.
Donc, je peux referter à ça
comme la même chose
plutôt que de ne pas changer conceptuellement
de pull request
à un request de merge
dépendant de quel invité je suis targetant.
Donc, pour mon point de vue de la commande,
ça fait beaucoup plus facile.
Mais vous pouvez le prendre
au niveau de l'entrée
où vous pouvez juste avoir ghCO
et réduire les commandes
à ce que vous avez besoin.
J'ai jamais utilisé github
avant,
j'ai utilisé github
beaucoup,
et j'ai utilisé Azure DevOps
aussi,
et ils ont tous utilisé le termes
PR, pull request.
Je n'ai jamais entendu
un request de merge
avant, c'est une nouvelle.
Donc, je pense que conceptuellement,
si vous pensez en termes de
ce que vous faites,
quand vous vous demandez
quelqu'un de faire un pull request,
ce que vous vous demandez
est de merge-le.
Donc, selon comment vous pensez,
et à quel point vous regardez,
les deux termes font sens.
Je pense que c'est juste un des facteurs
distingués
entre github et GitLab.
C'est quelque chose qui délinera les deux.
Mais c'est un genre de confusion.
J'ai déclaré un pull request partout.
Donc, quand je referai
un request de merge
dans GitLab,
je dis pull request,
mais c'est juste de ce que j'ai déclaré.
Donc, je peux faire les commandes
maintenant consistantes,
si rien ne change.
C'est un point, en fait,
avec le...
Je n'ai jamais pensé
en termes pull request.
Ça ne fait pas le sens,
vraiment,
ça ne fait pas le sens.
On peut faire un pull,
on peut faire un pull sur votre computer.
Vous vous dites que vous pouvez accepter
mes changements dans le main-branche.
Donc, c'est un request de merge.
Mais oui, je l'utilise
en termes de termes de la fin de la journée,
de nombreux fois,
et je n'ai jamais stoppé
en pensant sur le terme.
C'est ça.
C'est ça.
Mais comme je le disais,
parce que, pour mon vocabulaire,
pull request est
l'un que j'ai toujours utilisé.
C'est un change
pour commencer à parler de request de merge.
Donc, j'ai accepté pull request
comme ce que c'est.
Mais,
sous la bouche,
ils referent à ça comme quelque chose d'autre.
Et comme je le disais,
la ligne de commande,
je peux maintenant être consistant
et garder les choses
en sorte que ce soit bon.
Bien, bien.
Donc, mon tip est
ce que c'est un test.
Nous étions en train de tester
un collègue qui a récentement
été introduit
à la team.
Il s'appelle BDD-FI,
BDD-FY.
Et c'est un
bon syntaxe
pour vos tests
où vous pouvez faire
le
AZA-HOEVER
ou un « When then »
sort de syntaxe.
Et c'est comme,
vous avez deux options,
vous pouvez faire des attributes
ou vous pouvez faire
votre test avec des attributes
chaque étape.
Ou vous pouvez faire,
et je préfère de cette façon,
juste le « Fluent »
et les méthodes de « Calls »
comme « Link »
C'est ça.
Oui.
Et je préfère ce méthode.
Et c'est juste,
je n'étais pas sûr de ça
en premier,
mais ensuite,
quand je l'ai mis et c'est cliqué,
c'est un peu plus élevé
de mon test.
C'est un bon syntaxe.
Vous avez aussi
les outils,
les tests des tests de texte,
c'est vraiment bien.
Si un des des tests
s'il y a un peu de faibles,
vous pouvez faire « Given, When,
and something, and something, then,
or something, you know,
that kind of thing.
Et si un des des tests de texte
s'il y a un peu de faibles,
dans l'outil de texte,
vous pouvez voir
quel est le pass,
quel est le fail.
Parce que
ça vous encourage
d'être plus fonctionnel
avec les autres bits,
donc vous avez des très petites
fonctions,
parce que
chaque des
syntaxes de « Fluent »
c'est un « Lambda » qui s'appelle,
vous pouvez le déclencher,
mais généralement,
vous pouvez le déclencher
avec un autre de vos méthodes privées.
Donc,
chaque des bits,
vous faites vraiment fonctionnel,
peut-être,
en utilisant un membre d'expression,
donc c'est vraiment petit.
Et ça fait que
ça est très réusable.
Donc vous pouvez avoir
plus de tests différents,
avoir des différents « Given, When,
then » scénarios,
mais réutiliser les méthodes privées.
Et ça se termine
juste bien,
c'est bien.
Donc c'est moi
qui vais le lien
dans les notes de la show.
Cool.
Donc, avant de rappeler,
où est le meilleur place
pour les listeners
pour vous faire vos questions?
Je suis Gep13,
tout le monde que je peux
le faire.
Si j'ai choisi
de utiliser une plateforme
social-média,
j'ai essayé de le faire.
Donc,
Twitter ou X
est Gep13.
Je dois avoir un master
sur l'account,
et
je dois avoir un account Blue Sky
et un account Threads.
Je ne les utilise pas,
je suis toujours
en Twitter en tout moment.
Je n'ai pas réellement
mis en place Twitter.
Je sais qu'il y a des discussions
sur où aller, etc.
Mais oui,
Gep13,
tout le monde
que vous pouvez trouver.
Qu'est-ce que la 13e, je veux dire?
C'est une des choses d'égard.
C'est une des choses d'égard.
Quand je suis en académie,
j'ai créé mon premier
email account.
Et c'était...
Il y avait un username.
Donc, c'était,
GEP,
évidemment,
Gary Ewen Park.
Et à la fois,
13e était mon numéro de luck
ou ce que j'ai referé
pour moi,
donc c'était
Gep13.
Je ne peux pas
avoir une alter ego
sur Gep31.
Donc, si j'ai besoin de
faire quelque chose,
je vais tester quelque chose.
J'ai besoin d'un autre account.
J'ai aussi eu un Gep31
qui est aussi en train de me faire
mais
oui, Gep13,
donc votre Gephub secondaire
username est maintenant public.
C'est ça.
C'est pas un
malicious user.
C'est vraiment
si j'ai besoin de...
Pourquoi je fais ça?
Je vais essayer de
tester
un d'autres outils
que j'ai travaillé
avec,
c'est le manager de github.
Et je vais essayer de faire
un test
de
ce que ça pourrait faire
sous un autre account user.
Je dois créer
quelque chose qui est semi-alimentable.
Ce n'est pas juste un account
de throwaway.
Je veux avoir le temps
de faire des choses.
Et oui,
Gep31 est ce qui est en train de me faire
C'est moi aussi
si tu trouves ça
sur github.
Bien, je vais inclure les liens
à tous ceux
incluant votre alter ego
dans les notes de show.
Et
tu es maintenant en discord
aussi.
Donc,
je vais vous adresser
ce rôle de guest
pour que vous puissiez
sur le top
de la liste de
membres.
Et
c'est super.
Avec ça,
merci beaucoup
pour participer à ce show.
C'était
très bien.
Et comme je vous dis,
je vais commencer
juste de réveiller
mes scripts de chocolat
pour faire sure
que je n'ai pas eu
beaucoup de ma apps.
C'est bon.
Ça va bien.
C'est bon.
Merci à tous d'avoir regardé
et je vous remercie
que ce podcast
est sponsorisé par Everstack
qui est mon propre company
qui donne des services
de développement de software
pour plus d'informations
visiteverstack.com.
Et si vous avez aimé le podcast,
s'il vous plait,
me laissez me dire
le nom sur social media.
Je utilise le hashtag
unhandleexception
et je peux être found
sur twitter.
A Dragon,
dracam,
et mes dms sont ouvertes.
Et mon blog
danclack.com
a les liens à tous les trucs sociaux.
2.
Et nous inclions les liens
à tous les trucs que nous avons mentionné
aujourd'hui sur les notes de show
qui peuvent être found
sur
unhandleexceptionpodcast.com.
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags
GitKraken - with Justin Roberts and Eric Amodio