Bestand wählen
Merken

Contributing to Ember: The Inside Scoop

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
the the the the the the the half a the a the other all right
so I'm going to talk about how how can how you treat timber would you need to know how can you help me and I had to make us better so 1st of all about me and I am well apparently this is somewhat wrong I I am on the really spend the scene of frequent Judea and his basic open source software at so work a doctor we are hosting the wiki Goodenbour conference so hopefully very very good conference will be up in Boston in these summer and so you can also contact us we do our full stack the wood development Braille's all stacks so and design so 1st of all why is also so because they are not often wrong here it's clearly the best so wise off so it's really simple the answer is very clearly the website it's obvious of the the following site so is basically a collection of concepts and ideas and as the time and you was said at fluent basically it's it's possibly the only just framework self-identified framework so this gives you assumptions it makes you faster than I can make you develop quicker to get things going for better but without having to watch boilerplate or you know rewrite all your code in obvious obviously we notice so that's great but what really makes Ambrose is accumulated so it's it's you guys here it's everyone IIsi it's it's the Twitterverse it's it's although all of you that are controlling back and making it better all the time so in light of that we need your ideas we need your contributions we need your thoughts that's how we can all get better we can all move forward and launch ourselves into the next if you will so currently there's 334 contributors to the AREPO there are 430 something people here so I expect 100 pull requests after my talk the end of the day I got a big green but I can push now so where did you go OK so what what do you what can you do to help out so the 1st thing for anyways getting started out as a beginner or relatively new but ever your perspective is actually very very needed we you courting votes now but myself I guess and and that you know all of the sort advanced ever developers can't know the ins and outs of things no some of the conventions the obvious to us but has a newcomer these things are obvious to us that we just assume it take for granted you know not so you're reading the doctoring the guides these things or that you know your your entry point into how to figure out what these conventions are and you know there is a type of something wrong something does that make sense so the so that's the 1st and easiest place for you guys to get involved and make things better so I know a whole group of people that have been have been working hard on the docks on it conducts the guides cookbooks the whole website but it's it's a wonderful thing and it can only get better and it can get better because of you guys in your proofreading there's no way that also the release team or a core team or anybody can read through all the docks anytime we do a release it's not possible so we need to up Prosource this and and make a about so the next thing you can do is as you're going through developing application you can you know you find what you had issues you were crossed roadblocks file issues create up or request for about fixes you know there may be maybe something that other people haven't seen it or maybe there's something may be clarified in a better error message their assertions Thom actually you would have said earlier that dark bad that's all our our about so same thing that error messages so their messages really basically just another form of documentation to guide the developer through at design time how to make things better some of us think of them and talk about is too many new features new API is changing existing API in backward-compatible ways and how to how to go forward and add had these features and what that process looks like look at
Salesforce talk about documentation so helping with the dots is sometimes painful the process is not simple but is not as simple as it could be the you know also time to get it in the text and that kind of bike shed on the actual verbiage in wording of what you put in there and it feels that right so I wanna say since it's often thankless causing thank you right so you guys again you're making a better and that we need to continue when a continued so basically when you find something you you have that you've seen something's wrong as hypo to me is not explained very well but your inestimable request right so if it's a type or issue a guide to put it to the guides website the so the got died 3 books that ever JS slash website I something in API that you because of the poor request to the main repo so the the key here is how you Prefecture commit so when when you submit your pull-request the way that you can identify to us so when this thing is merged to be able to make sure that this gets back fed into all the right channel the beta channel relational in what not and get that the website updated is by prefixing your so already talk a little bit about this it actually really simple so there's a whole bunch of there's actually bunch of specific details on these prefixes but the pattern is all the same so in this case if if it's a documentation thing it only applies to carry or master but you're just saying document put in brackets see that that's it so if it applies various Dr. Bader the Prize religion is a duck released so I am actually going to to to be pushing hopefully to be able to publish the website from release a from the current release branch instead of the last tag branch so we can actually filter documentation changes only through that features changes code but if there's a typo there's no reason to leave that bad API dark but with the type of art fix Masten beta on them online for 6 weeks it seems crazy so so if you prefix about release then that this'll be be updated the next I would put website and that's that's actually coming it's a quite yet right so what's the next thing
is as but so you're going to your code you find a you find a body find regression something's not working properly that's documented maybe this some our guide or you know something this should work when when it does so the 1st thing you should do is add a test to show the regression if if you possibly can if you cannot edit task then open issue in just say this is what it is you suggest then the minimal J. been that represents the the problems that the you're describing with very clear instructions of how replicate the problem oftentimes we look at just been examples and it's just crazy so it's not possible for me to digest what is actually the problem or what is like all the set up if 5 to scroll through you're just example to digest what's happening it's likely not gonna make an effect on me so that you have a Russian test or potential open issue that you're going to try to fix the issue so that it may not be obvious if you can't fix issues submitting a pull request with a filling task is a very good thing it demonstrates what from Lexus jumpin' pull that come in and out and fix it but in a separate the were in sup emerge so when you see major about next year prefecture connect so very similar to that the dockside so 1 thing it's a caddy at you're if if the the bottom is only in a feature you're actually gonna prefix and so but fiction a prefix it with feature the way where I get in the future fights and it will bear but basically the way you if the feature is not enabled by default you'll do feature in brackets and the name the feature in and in any message but if it's related to actual life code like in beta or get married but not mind future flag because a beta and the 1 thing to note only very severe regressions and and and breakages will actually pulled into the release 1 branch in theory about 6 release is the thing you could do it but it's not likely that were released a new 1 was at a very major problems and a new tag released for a previously was for but said you should totally do this except for the secure a ball of vulnerability if you have something it seems like it might be a security issue e-mail security team but and we definitely have been making making habit of working with people and kind of getting this going the the key here is that we wanna release these fixes at the same time as a tag released so that the exposure time for consumer applications is as little as possible so you can read the full policy on evidence that counts less security and I think that the custody policies great and you know we shall know and in learning also everyone in this room should be subscribes to the sturdy mailing list that is where we're going to you know you and let you know when a new release is done and I talk about any any errors security exposures again so my son about features so what what what features right so where new features right I mean to be the at Amber is a feature right under the mind of each flight so so what am I talking about so 1st of all anything to add new API the thing that that adds new public API that that wasn't it essentially wasn't in 1 0 right so to be behind feature flight so anything it's this backwards-compatible but is still changing the API is also a new feature and in all the features are hidden behind feature flights so feature flags are really simple sounds complicated but it's really really simple and all it is is just a block saying if this feature is enabled run this code if it's not then you do something else let on run so the reason we use data flags is is basically to keep the release stable so that we can iterate on API and changes and updates and new things they're going often to all of us all and we get when we we want them but still be able to have it out there and that available for people to to use in test play with in like carry builds but we don't have to be locked into Semba supporting that API and 2 were ready and sure that it's good to go so I think this is a really key point we've had there's a couple of features that have been removed but before they were but instead of being approved there some features that have been completely rewritten we're friends knew for example I had an army iterations items on this point but so so it's very important and it's important to us but to get the EPA right and this is how we do so how does it work it's actually kind of straightforward and I is a simple but it's very straightforward we use a package that called the future find to process the bill output and its threads depending on the flag value in the features use on a construct the the code out of the bills that that shouldn't be in right so if if you're publishing a a certain building in the feature is not enabled it's in a strip that coder such is not included on so how do you know what enabled this is something that comes up a lot in I a C or on Twitter at all I thought such such a feature was enabled out so the simplest way to tell if a given feature is enabled is just look at the features and fire in the repo so if you're 1 of something is enabled and beta you go to the beta branch and you jack up the future studies so there's 3 3 possible values in the features of features of a integration file basically a value true means that the feature flags are enabled in the build and the flags themselves like it with blocks so that the if itself is removed so the code is there but the if is not so there is there in any health case is is removed as well a false value means that that feature is completely disabled and is not even in the bill so you can't enable at runtime can't change anything which is not there and the value and all means that the feature is disabled and it is but is left in the bill so you could theoretically enable it at 1 time so this is the breakdown of when certain of the how how features are able disabled and bill so we have the care branch were all features the value is NULL so all features are disabled but the cylinder built so you can you can throw a variable in your in your head and and have that feature turned on when you whatever so in barely skills this is not so the features are either enabled or disabled so your true or false value and the stress so only things that we have said this is the green light this is bill for public API are going to be in 1 of those those things and even still in the beta we haven't actually had this to my knowledge but in data we could theoretically find a problem with a given feature and have to take it out were moved back to not enabled by default status and it's for some more work if there's some of this says happened but it certainly could that's that's all point the beta process so the the logic this and can you enable feature flags in a beta or release build so the short answer is yes you can the longer answer and after that I think everyone should give you a is don't do it so the main reason you do not want to do this is because the bug fixes therefore that feature are be pulled into the beta branch or the release French right so as we go through the process for collecting about fixing things things were broken drop that it and NASA if that feature is not enabled in data at the time when I'm gonna pull that fits in so you could be using something that has known about and ownership so so basically you can do it for the cyber edited can I enable features in variables so the answer is yes please do we need testers we need people reporting is problems but realized that this thing could be got by the time that the public built it could be speed will be removed and remained in new as a feature altogether
get so how do I enable future so you get this is this is it this is enabling queer brands and you have to put this up all loading amber itself so I that many of you actually think this is what type of art it is not a table so and the global and is actually red prior to the end of global but so this is so that you could have an and global values for your apps environments and it doesn't stop on things so a lot of people don't don't know that both of those work in in this action looked at 1st a
get so hot even through the future so there's essentially similar to bug fixes or documentation updates you add it into the feature Jason your have with a null value no additive features and you're gonna hide behind the flags at some tests and replacement some simple so the 1st thing you do is pick the flag and so this was something that we didn't really do initially so there's some features that exist that don't have a flag named that follows pattern but basically you're a pick the package and modifying and then you're gonna pick a short feature of of short feature name something descriptive but not insanely long so you had feature Jason file but your 1 added last some people have been inserting them in the middle which makes it really hard for me to keep track of the order things are at and keeping track of what's up for discussion of 14 meetings and agendas stuff to guess at the value to I am just gonna point out that you have to read basis on every change the features about it's actually kind of annoying hopefully that your feature doesn't sit in a P R 2 long so this isn't an issue but you'll deftly the sum to be aware of so you need add a nice clear description in the features mark on file so you can read about what this feature is in just pros like just a quick couple sentence medial example on what this picture is what it does so that it's clear so some come and say what is this feature due in it's very obvious and anyone include the pr the link to your pull-request hanging feature in the features right and fire now this is that like a chicken and egg problem I would say probably better to submit the PR and then amend your commit to add the link you can try gestation number if you want to collect so
in in your in your hide the future floods behind the you can hide the feature behind flags this applies to both your test code and your implementation gets you the actually if you don't mind tested testing something does exist and much successor would have stopped block so so it's very simple you you say if the features enabled the pasture the package future name you chose and then you had your feature but if there's code that has to be executed in case the feature is disabled or not enabled maybe all code maybe of setting a variable I 1 way or the other depending on features enable you would put that in in L spots so so one thing to note here you
actually can't nest feature reflects to this is currently an issue devitrify synaptic problem we don't really have this occur often but his death was something to be aware of so if you're trying to add a feature inside of another feature flag here you have to figure out a way to do it so whether it be set a variable and into Susan internally inside the other flag or reopen the classes of like that there's different techniques to do it but you can have nested you'll blocked a feature fi hand up it'll be an issue so you've added you that the
future flights your your test the flags your code is going flags in all my test that CA but you're not actually running the tests for your future unless you check the check box that says Enable optional features in the attitude that you up it's near the top so you can also run the test in the command line on I don't have the exact syntax here because it's going to go away so hopefully we can migrate off of the ruby bill process in the next few weeks so it doesn't do any good to me from by now so then gonna prefecture commit so this is really simple is exactly same patterns we talked about before feature in the package in the future sorry and that's it so you generally wouldn't have you just have that as your message you wouldn't also put some other text although that's not a problem and the reason we do this especially for features it's important or elsewhere to before features having the feature and the feature name in the commit message means that we can basically go through the get law and see all of the committees that were involved in a given feature so this lets us either remove it if we have to revert or you know figure out all the different ages that might have had to do with it so the the next thing sometimes the feature pr as they may sit there you might get feedback you might you might not be merged immediately so the review takes time and has a lot of implications the public API is very important to us and I think that's a good thing so please be patient and be polite you know you if if you don't see any activity feedback sure you can ask a question you know the feedback of thoughts though the rude don't be mean we all have jobs we have to do outside this as well so once once you PR is merged now what's going on so the 1st thing we're gonna be doing is a secure jury we've had some we had an issue with the with the feature that was added that actually expose our user inputs and a lot of them didn't escape a so we had to have a secure you about half of these 2 to result so work we're now going to be doing stray out it's on the BP on the features before we enable so your the features list of the new features that are not enabled by default or actually review by the core team at the the team meetings were a weekly you know every couple weeks when we review them and essentially it's going to give feedback in does this make sense should be enabled us is this going to go do we need to tell this person had a change something we would like this to real difference syntax or whatever so some of that will happen in the PR stage the initial Pierre but also you get the opportunity getting additional feedback throughout so and then finally their command to a go or no-go decision so your future may be enabled may say no we don't think this belongs part of core and it may be it's a better is applied so the blog posts for what's coming to a 12 2014 and that that was released after the last face-to-face meeting talked a little bit about a project's felt and that's making the file size smaller and sleek so part of that is going to be I am not expanding the core for things that are easily done is a point so if you don't need that to be part of form it may be to say look this maybe this should be about that we certainly didn't need make that infrastructure better and easier to include but that's likely out a possible come to your your future OK so
that's pretty much it under the feature stuff so we're talking about the release cycle
so that you have talked about this morning but earlier but we have 3 channels the beta so released beta and theory so the beta 6 weeks 6 weekly sorry 1 once a week every is for 6 weeks in a row of releases and our tagging these so that you can test this code and this is if there's no issues there the flag are reviewed and then and then this is what can end up being the final final product for the next it will build so in
theory new features go and Canary bug fixes . fixes everything goes in the Canary so this is this kind of that edge that it should be stable I think we have we pride ourselves on and making the Canary builds basically work in the uterus stable but it's possible that we had a new changes new new tweak it has has about so it does so the very branch his branch from the Canary but it's it's at the end of the cycle so when we begin the next 6 week beta cycle were in a branch from Canary and it will only be merging bug fixes and documentation updates into the barracks so a new features things that are not taggers bug fix you are not the people that which which leads me to to reinforce that if your if your body fixing in in a PR does affect the beta branch make sure it's a prefix of both better it's really hard to reveal all the commits and determined each individual 1 whether it belongs there not so Elpis up and indicate that done and then we do weekly releases but I will say that there are occasions where I'm a tad delayed undue now so you know it's it's always have right on time but we we tried miracles we've been pretty good I think to this point so on and release
branch is bred forbade at the end of the 6 6 cycle it will only be receiving that dish updates major Russian fixes and thus cherish so will allow committee fixes that doesn't seem too complicated but let's recap request so there's basically 1 a similar format is going to be the the type thing Doc but fixed features security and and the channel that you're applying to you and then like your message so doctors use for documentation and targets your year affect channel simply would fixed it's only for bug fixes not for newly Peizer things like that and and only again was be about wore new tags and releases for the Wii which so feature is is adding a feature and is used as a whole and it is also used for bug fixes to you feature and security this is when I did not to mention the slides because is generally used exclusively by sturdy team and simultaneously published to the public repo and I with the tag release and likely a patch to older releases the affected so basically we we
need your contributions you know I like I said earlier I wanna see those the as it once you guys give feedback tell us how to make it better is very important and that's the way the world and want forward into into the future so
knowing that the battle and that those gadgets and food and have be there of the of the the of the things that the and and the you know that you have to in the middle of the that you know if you the and and
Explosion <Stochastik>
Web Site
Abstimmung <Frequenz>
Punkt
Prozess <Physik>
Gruppenkeim
Datenmanagement
Keller <Informatik>
Kartesische Koordinaten
Hecke-Operator
Framework <Informatik>
Demoszene <Programmierung>
Bildschirmmaske
Software
Perspektive
Datentyp
Elektronischer Programmführer
Softwareentwickler
Open Source
Elektronische Publikation
Wiki
Intelligentes Netz
Quick-Sort
Videokonferenz
Rechter Winkel
Speicherabzug
Textbaustein
Message-Passing
Fehlermeldung
Vektorpotenzial
Bit
Prozess <Physik>
Punkt
Iteration
Kartesische Koordinaten
Poisson-Klammer
Fahne <Mathematik>
Code
Fahne <Mathematik>
Lineare Regression
Minimum
Mustersprache
Speicherabzug
Computersicherheit
Kompakter Raum
Elektronischer Programmführer
Tropfen
Default
E-Mail
Funktion <Mathematik>
Umwandlungsenthalpie
Softwaretest
Obere Schranke
Prozess <Informatik>
Cybersex
Computersicherheit
Gebäude <Mathematik>
Strömungsrichtung
p-Block
Arithmetisches Mittel
Twitter <Softwareplattform>
Rechter Winkel
Lesen <Datenverarbeitung>
Ablöseblase
p-Block
Schlüsselverwaltung
Repository <Informatik>
Normalspannung
Message-Passing
Fehlermeldung
Kreiszylinder
Web Site
Existenzaussage
Mathematisierung
Mathematische Logik
Code
Physikalische Theorie
Task
Variable
Iteration
Datentyp
Softwareschwachstelle
Thread
Soundverarbeitung
Beobachtungsstudie
Videospiel
Lineare Regression
Prozess <Physik>
Betafunktion
Relativitätstheorie
Verzweigendes Programm
Rechenzeit
Mailing-Liste
Elektronische Publikation
Programmfehler
Integral
Skalarprodukt
Offene Menge
Softwareschwachstelle
Betafunktion
Wort <Informatik>
Gewichtete Summe
Gruppenoperation
Mathematisierung
Zahlenbereich
Deskriptive Statistik
Weg <Topologie>
Softwaretest
Fahne <Mathematik>
Fahne <Mathematik>
Datentyp
Mustersprache
Zeiger <Informatik>
Inklusion <Mathematik>
Softwaretest
Addition
App <Programm>
Oval
Binder <Informatik>
Elektronische Publikation
Programmfehler
Verbandstheorie
Verschlingung
Basisvektor
Ordnung <Mathematik>
Programmierumgebung
Tabelle <Informatik>
DoS-Attacke
Softwaretest
Fahne <Mathematik>
Fahne <Mathematik>
Implementierung
p-Block
Code
Rückkopplung
Bit
Subtraktion
Punkt
Prozess <Physik>
Quader
Web log
Mathematisierung
Euler-Winkel
Code
Entscheidungstheorie
Bildschirmmaske
Softwaretest
Reelle Zahl
Fahne <Mathematik>
Mustersprache
Speicherabzug
Computersicherheit
Default
Figurierte Zahl
Meta-Tag
Softwaretest
Computersicherheit
Dreiecksfreier Graph
Mailing-Liste
Ein-Ausgabe
Elektronische Publikation
Entscheidungstheorie
Verbandstheorie
Einheit <Mathematik>
Dreiecksfreier Graph
Mereologie
Projektive Ebene
Speicherabzug
Message-Passing
Stabilitätstheorie <Logik>
Prozess <Physik>
Punkt
Betafunktion
Mathematisierung
Verzweigendes Programm
Biprodukt
Physikalische Theorie
Code
Programmfehler
Datensatz
Rechter Winkel
Betafunktion
Fahne <Mathematik>
Dreiecksfreier Graph
Rückkopplung
Computersicherheit
Verzweigendes Programm
Programmfehler
Rechenschieber
Patch <Software>
Message-Passing
Betafunktion
Datentyp
Dreiecksfreier Graph
Computersicherheit
Dateiformat
Repository <Informatik>
Message-Passing
Videokonferenz
XML
Stab

Metadaten

Formale Metadaten

Titel Contributing to Ember: The Inside Scoop
Serientitel EmberConf 2014
Autor Jackson, Robert
Lizenz CC-Namensnennung - 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/35006
Herausgeber Confreaks, LLC
Erscheinungsjahr 2014
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Confused about how the release process works? Curious what the heck feature flags are? Wondering which commit prefix you should use for your latest pull request? This talk will answer these questions (and many more). It will include insights into the release process, feature flagging, the build process, which commit prefixes to use, and how to create custom builds with features enabled by default.

Ähnliche Filme

Loading...
Feedback