Merken

Using Git Hooks to Help Your Engineering Teams Work Autonomously

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
so 1st to present myself 174 times as of subregion land on
a spark of 20 livery and deployment scheme and today I'm going to presented but we took its Orlando from the doctor uses of subversion
to enlightened age of eponymous work with T gt so it was
some quick facts about so and also you understand the context of my work what we are we have our headquarters in Berlin and we have also other offices in in our places like that we now see in the dark moon therefore we have more than 700 actually nowadays almost 1 thousand unionists and we do lots of every almost everything we do is then you now so we do a lots of the VO development OK so
the 1st question when talking about the talks these white we need deep coaxing or subversion or other kinds of comic took in the 1st place the is a stalling fossils that is raises the 2nd question why do we need rules any large group organization it's rules with symbols are internal to the group's seminar external and they are very important to achieve an efficient workflow to ensure quality and transparency to stakeholders and in the case of cell and all stakeholders go from colleagues at the time that vector next that there's there's 2 the customer mark that has precedence as is credit card between the
master will spend lots of his money and he trusted and believed in this 2nd
question is how long fossils not our rules are enforcing get talks some rules are enforced peace before deployment some rules are only monitor are not forest uh so you want to look at your workflow and see what rules can be enforced apriori or which and what rules can be shared with the after to you have moved on your work so it's vital to keep a proper balance between 2 so that the types of enforcement because if you have too many blockers on your work workflow you prevent developers formal or from being productive but if you have too few shakes and blockers you read that that suffer because life and you break stressed to all stakeholders that you so now starting point dark ages of subversion disease was a place where you knew you were when I arrived at some final political we yes when
bias creeps with 7 basic checks or it was a great comic book then we were going to the company and who we needed more rules because it because it was not possible for someone to keep track of everything that was happening so and it was not possible to keep a batch script anymore it was not efficient because not maintainable so we ported to the to do and suppression come from the comet from batch to fight and then around
December 2000 styles and for trolls indicating we start moving from the US version was not good enough for anymore and we had to do something uh so starting
included but we still have the same rules and places before and we knew we would still keep as a version from some for some time because we already had lots of things and symptoms wanted to move faster and other slower and not everyone wanted to move to the so we had to convince everyone and we decided to do with my and migration in waves so our 1st see the 1st decision we took was to adapt the ASEAN commit to work on both SEN and you uh so implemented in the talk is abrasive book because the it's invoked that that same point on workflow as comic book on subversion this is why and user since changes to the remote server and because it will allow the as to reject the reference or branch without jet full push general tentative would be to an update to look back and that 1 of the few returns an error code it will block full push even if most of the cities of following the rules doing this at some problems this approach has some problems so the 1st
the 1st problem the 1st problem in this plan was that it is not the version there are different they are different in fundamental ways and and drank support means subparts support for both of them the other
problem is that being distributed kid is more flexible than subversion which means that people don't use the same like the use of Persian and you don't use the same thing same way that other people use the 1st thing that even for things that are lined up to migrate to beat the start experimenting with different workflows and this was a good thing because they were very different projects and different but it's a very different requirements this so we need to make sense for them to have a different set of best practices and slightly different rules and different bridging strategy but this also forced us to rethink how we the Schechter rules and all we implement rules and we have to rethink give to so we move to plan B. where before we had 1 1 common for the and version now we we decided to after different books in practice is that these meant we flocked to look into that subversion comic book was a pretty just so no more she's there because you don't want is to really support the submission anymore and we continue to work on to per per receiver because different teams wanted to use different workflows that we moved away from 0 to 1 size fits all strategy and allow teams to specify set rules for for themselves so this is where we a lot of things to set rules for himself yeah the configuration format based on the where projects and repositories could measure them several rule sets by the deceased singular there are 2 CSS so for example you can see there that the 1 thing would have 1 general rule for themselves for project but back for a specific repository they could change the part of the rules and not tools set a 2nd thing could have completely different rule set because they have different and the problem with the 2nd approach and this was a few reflection we do that they're using the disk it looks for 1 year was that we have a centralized configuration which became a bottleneck bottleneck because it would only be changed by a small number of people and sometimes we were on vacation and it was really bad the are there are more technical problem we have is that we were crying check all the comments on a bush because the assembles applied to every single commit uh for example Schechter leading 1 of the rules we as we have a toy analyst at every common commit messages to eradicate and for this we have to go through all comments and this work was problematic for a number of reasons for example and get the story's not linear so easy to use and manages sorry basis for migration and retraction of the message using comic range for the IT and see if it matches to arrange branches that came from the comments that came from other branches by the relays or after the marriage would fail the ship but in the end we tried to several solutions some work way Maradona iris Indians to the solution for this was uh filtering out the comments that were already in a branch clusters meant they were already checked before and didn't belong in warm-up originated on his ranch 2nd the problem we have these that when you much toward from a long-lived branch 17 far at some very long lived with projects and they have branches for it and sometimes they differed from master for 2 3 months and when they emerge from master or master when based they had literally ended of commits check because of some of course checks to sometimes we add Bush's that to Morton often our checks and this was not a good experience for a developer then related to this and 1 of the slowest checks we had these the shaking called style especially for Java code because we you you would we use shall be to validate called style and it runs in JVM and objective data of Oracle evaluated meant we had to spawn 1 JVM for every changed files so we someone pushed the 400 changed files we would spawn up to when the JVM hands and other people were pushing it same diamond it was going to constantly for freezing and slowing down or server we were able to mitigate this problem by using again that that is a kind of server that keeps a JVM life and you can run the JVM programs there and couldn't rental be there but we had to do some work around so rental prepare in parallel and we you see less and performance issues went there for some reason there were more pushy sense usually the last problem of this all of this is that the system was inflexible and sometimes people have very good reasons to ignore rules 7 sometimes they pushed something you should know that they didn't want to push and they want to do a forced motion didn't allow that sometimes they sometimes some Bush was accepted by mistake and was a bag and at best we removed because it should not be there sometimes there's a bag and we reject something that we should have accepted and because it is use was on our server and people into existence evidence they had no way to around it get problem the other way would we flexible that because it's a remote could do that and it's living on server we only supported or internal due to the server room for example you could not use them already too far projects on the on and so our open source projects were completely and support In the end we buy could summarize all these problems that as we try to centralize while it is distributed we still solve our source control management system as a centralized because we came from subversion and we were so deals thinking like subversion but it was clear that we would have to ring tinker approach this process of
thinking about the sided with the use U-shaped that's assigned as part of something we call riddle agility as a land was getting rid of all the Iraqis and giving things more economy and 1 of 2 new models was autonomy and self control and these presented a clear part for us and in the end was the solution that we are still implementing so we
decided to move away from remote keep looks to go to a set of local people to move from remote critics was set of local the books 1 advantage of disease that the Dukes C 1 committed the time so we avoided issues where you had a set of these supplements checks and we didn't know what was and what came from a Marjorie based on what was created in the branch and it's better adjusted to the distributed nature of the bestiary by themselves and people run it on their local machines we decided that they should be optional because we want to test people this also means that people saw no longer responsible for enforcing the rules instead we are creating mechanisms to the 2 and a level of development follows the rules before decodable goes life that we don't block anyone from pushing anything right but we did this because we believe get books should be seen as a pool 12 autonomous developers and and not as a barrier that makes them work harder we decided to make them accessible because as I said before 1 size doesn't fit all different things of different needs and 7 sometimes and we only have a small group of developers working on these or full-time and but sometimes Tupolev of others and ideas and they can implement new stuff for themselves sometimes they they don't want 1 of 4 6 and did they don't want to install the dependencies of course X so by being accessible they can opt out of those dependencies and we decided to make it open source because by only being and thinking open-source sequence of fully support autonomous seems and it is also allowed us to support our claims that want to open source code and it is also include my team so or who are a new set of folks difficult and are available on get that and by PI so everyone is free to use them so if you want to install it on your machine you can just use speaking style instead course this was just the so far without any of many of 104 extensions we also add some extensions or until skit of account so and now you you want to use it on the opposite what you have to use well 1st step this is as the style uh Emil file in the root of the repository if you'd use to something like privacy or something similar is simple the same process you just that it had filed your repository and it looks something like this you will the checks you want to use so you just name them and you can give options to all checks that they support by themselves and every check if you even if you will are implementing your own checked the extension you can read this file and you have access to it so and because the way locally it looks work you need to use same to books on your adopted Fuller considerably Doreian and make this easy the turnstile supports supplement that stands style installed that will automatically singling 2 talks for you and because I was already getting support for some comments I've added several more we have coffee comments that right now jointing as he said that allow you to set for positive so if you want to errors you can only see the errors if you won't see everything that they're and style is doing against since you can also do it you we have install comment to whether to looks to a specific repository we have to remove all the if you decide to that did you don't jokes anymore for the repository the specification of sub command is used for of but check if Shetty all your products contain valid specification of all of commits condonable its specification and right now this means that any of these they would then URL but I'm planning to support more staffing in the near future to keep rates of commands will stick by P I C Eastern style and all or at all of your own extensions are updated and if they are not the to offer what date everything for you and version just means the not that interesting so now if you want to create extensions to turnstile how can you do it the 2 way you you would want to weight in a set of tools so entry points so you just have a if you want put a comma and you just the globally and when used interpoint turnstile lot comments you give to name yourself from and then this will be used to call it from the command line and you just provide model where your supplementaries and I see condition later I'd segmenting force checks so she want to share something with the poem which too bright comic book we use you also give it a name to that will be used on the population and use provide model that's going to be used so here we have 3 points right now 1 comments 1 4 commit message will that checks commit message and the other for PrepCom commit to that it's we use for shaking could stuff for example so what do you do you will learn from this process 1st I don't think this is the most important don't get stuck in the past it's very easy to make mistakes and because it was always them like this and what was the best solution yesterday can be too wrong solution to date and this will be mostly like will mostly glycolytic refuse change technologies because futures technologies you will have different the limitations and different opportunities and you should review you should rethink what you're going to end up to it other what 1 other thing learned was developed in the open because system by being more transparent about what 1 we wanted where we have we were going so we avoided as something to and we have and we have about biking ourselves into a corner and we got early feedback that also of ideas lots of issues we also learn that we should that build tools not various software is meant well people and can be more could be more productive if your software is making people will Stein self-seeding time if you should rethink it by region article we were able to move from a position where sometimes our our software was in the productivity of origin in teams to a position where they are useful tools to well them work or come in dozens of problems with so any
questions this information a high
I think if I talk to my question is about them the cost and 4th of any change because some you but unintelligible combining changing the older I cannot so the amount of yes thinking I was asking about the effort of changing in a 2 step because sometimes this vessel may be a good thing but change in forest centralized hooks to local holds and everything out there for yes yes it's an art process and we are still working on it uh surroundings and actually are doing things where
we are disabling checks upon remote took in in phases and telling people now start using this and we are trying to make it compatible so Chile I think that's not working saying the same way on remote keep talks and locally to to specific because before we only allow to the people to use the Shire tickets and noun customs are autonomous we want to allow them to use whatever solution they want so now we support more stuff the fortunately Excel and all you work already used to always question everything and it is 1 of our philosophy and the food if you state is you are doing thinking all the time you should question yourself and see if it's not there is no better way to do it and it it is it's part of our corporate culture and it that that that doesn't mean that people don't go don't complain that we are changing again and then we have to to manage it but that at least in relation relationship produce mostly like I have is that people are happy to be able to control when they used to so they use that and and the they don't and they are very happy that they don't have through to to rely on me and my team change the stuff for them if you can provide any samples of this kind of rules that enforcing with that good so for example
and these these actually from 1 of the most or open source repositories I don't remember exactly what this is a very minimum set we have more than that but for example the specification we have to specification checked what it does right now it is worth checking and the your commitment is is starts with an URL and you was FIL optional all schemes right now and I'm saying that they only accept HTTP S U R L's because on this case all the specifications are you are done using the temperature uh in the near future I want also support and support the DAB references so you can just put to the and the references to this work by the data and also In the desire to get ideas because we still use it that's all I know and if we wanted to make it easy for people to use it we have to branch release that in this case uses that edgex expression on the bottom to share if a branch that starts with release slash something that 2nd part that's too much that 1 in this case at the start we get the informal several sets from a to B is that's all I know but you can use whatever you want and to protect maceration this case that forbids you to commit directly to master because we want to enforce the requests yeah any other questions questions from the look at just the just 1 working
and if you want to find some more information about so I know that we have a log index thoughts on 0 . com where we have already got page should be doubled or not celestial I know we have lots of open source but it's there and we are going to have much more in the future we sort Twitter Instant gram and instead account and I just page and who with 1 of 1 of my colleagues will give a person that presentation into recruiting session later today
Software
Nummerung
Softwareentwickler
Kontextbezogenes System
Computeranimation
Selbst organisierendes System
Gruppenkeim
Zellularer Automat
Schlussregel
Symboltabelle
Vektorraum
Computeranimation
Chipkarte
Summengleichung
Videospiel
Weg <Topologie>
Punkt
Wald <Graphentheorie>
Betragsfläche
Datentyp
Skript <Programm>
Skript <Programm>
Schlussregel
Stapelverarbeitung
Computeranimation
Fehlererkennungscode
Punkt
Wellenlehre
Mathematisierung
sinc-Funktion
Versionsverwaltung
Verzweigendes Programm
Schlussregel
Computeranimation
Entscheidungstheorie
Migration <Informatik>
Code
Große Vereinheitlichung
Subtraktion
Spiegelung <Mathematik>
Applet
Gefrieren
Automatische Handlungsplanung
Versionsverwaltung
Zahlenbereich
Code
Spannweite <Stochastik>
Algorithmus
Code
Mini-Disc
Migration <Informatik>
Existenzsatz
Cluster <Rechnernetz>
Optimierung
Softwareentwickler
Konfigurationsraum
Große Vereinheitlichung
Videospiel
Fundamentalsatz der Algebra
Assembler
Dokumentenserver
Open Source
Verzweigendes Programm
Schlussregel
Physikalisches System
Elektronische Publikation
IRIS-T
Objekt <Kategorie>
Rhombus <Mathematik>
Rückkopplung
Menge
Forcing
Mereologie
Basisvektor
Ablöseblase
Server
Strategisches Spiel
Dateiformat
Projektive Ebene
Datenfluss
Message-Passing
Offene Menge
Punkt
Prozess <Physik>
Natürliche Zahl
Dokumentenserver
Versionsverwaltung
Gruppenkeim
Übergang
Freier Ladungsträger
Speicherabzug
Punkt
Wurzel <Mathematik>
Feuchteleitung
Umwandlungsenthalpie
Kraftfahrzeugmechatroniker
Dokumentenserver
Stellenring
p-Block
Bitrate
Biprodukt
Konfiguration <Informatik>
Mustersprache
Forcing
Menge
Rechter Winkel
Konditionszahl
Versionsverwaltung
Message-Passing
Fehlermeldung
Fitnessfunktion
Rückkopplung
Subtraktion
Folge <Mathematik>
Ortsoperator
Mathematisierung
Code
Virtuelle Maschine
Informationsmodellierung
Software
Inverser Limes
Maßerweiterung
Softwareentwickler
Videospiel
Datenmissbrauch
Elektronische Publikation
Open Source
Verzweigendes Programm
Schlussregel
Physikalisches System
Elektronische Publikation
Mereologie
Gamecontroller
Vier
Prozess <Physik>
Wald <Graphentheorie>
Güte der Anpassung
Mathematisierung
Speicherabzug
Information
Computeranimation
Umwandlungsenthalpie
Dokumentenserver
Dokumentenserver
Open Source
Relativitätstheorie
Verzweigendes Programm
Schlussregel
Nummerung
Hinterlegungsverfahren <Kryptologie>
Computeranimation
Arithmetisches Mittel
Mustersprache
Arithmetischer Ausdruck
Menge
RPC
Mereologie
Stichprobenumfang
Minimum
Ext-Funktor
Phasenumwandlung
Twitter <Softwareplattform>
Automatische Indexierung
Open Source
COM
Information
Kombinatorische Gruppentheorie
Login
Web log
Homepage

Metadaten

Formale Metadaten

Titel Using Git Hooks to Help Your Engineering Teams Work Autonomously
Serientitel EuroPython 2015
Teil 19
Anzahl der Teile 173
Autor Santos, João
Lizenz CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben
DOI 10.5446/20139
Herausgeber EuroPython
Erscheinungsjahr 2015
Sprache Englisch
Produktionsort Bilbao, Euskadi, Spain

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract João Santos - Using Git Hooks to Help Your Engineering Teams Work Autonomously In this talk, Software Engineer Joao Santos will describe how the engineering team at Zalando has been migrating to local Git hooks to ensure that engineers can work autonomously and flexibly. Zalando--- Europe’s leading online fashion platform for men, women and children-- began shifting from SVN to Git in late 2013. Santos and his colleagues used Python to create a Git update hook that enabled the team to reject changes to a branch while still allowing changes to other branches. He’ll explain why his team chose Python for this job instead of a bash script, point out mistakes made during the process (and solutions his team used to fix them), and the benefits generated by this migration. He’ll also talk about turnstile: a set of open-source, configurable, optional local Git hooks, created by the Zalando team, that enables engineers to abide by internal rules for committing code while following their own coding style and workflow preferences.
Schlagwörter EuroPython Conference
EP 2015
EuroPython 2015

Ähnliche Filme

Loading...