Getting Started With Augur, November 14, 2022 ![rw-book-cover](https://i.ytimg.com/vi/nwLlrOvjk_0/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLCPx2A1WEuOp92ZDqRBATskN-0iuA) ## Metadata - Author: [[CHAOSS]] - Full Title: Getting Started With Augur, November 14, 2022 - Category: #articles - Document Note: --- tags: [#open-source, #metrics, #augur] - #open-source - #metrics - #augur Author: Sean Goggins & team (with contributions from CHAOSS community) Source: Transcript of *Getting Started with Augur, November 14, 2022* (YouTube workshop & hackathon) Reference: [YouTube Link](https://www.youtube.com/watch?v=nwLlrOvjk_0) date created: 2025-08-22 18:45 --- # Title: Getting Started with Augur – Data Collection, Architecture, and Contribution Pathways ## Table of Contents: - [📝 Summary](#-summary) - [📖 Main Content](#-main-content) - [🗒️ Notes](#️-notes) - [📖 References](#-references) - [🗣️ Paraphrase](#-paraphrase) - [📰 Newsletter](#-newsletter) - [✅ Action Items](#-action-items) - [🧪 Hypotheses](#-hypotheses) - [📊 Methodology](#-methodology) - [❓ Questions](#-questions) - [🔮 Future Research](#-future-research) - [💡 Implications](#-implications) - [🧠 Learning Styles Assessment](#-learning-styles-assessment) - [📊 Accessibility Assessment](#-accessibility-assessment) - [🌍 DEIB Assessment](#-deib-diversity-equity-inclusion-and-belonging-assessment) - [✅ Logical Validity](#-logical-validity) - [🔍 DARVO Analysis](#-darvo-analysis) - [🔍 SEO Evaluation](#-seo-evaluation) - [🎯 Conclusion](#-conclusion) --- ## 📝 Summary: This transcript captures a workshop introducing **Augur**, an open-source software metrics platform developed under the **CHAOSS project**. Augur specializes in **collecting, validating, and analyzing repository-level data** (commits, issues, pull requests, contributors, etc.) to assess open source project health. The session covers installation, data collection processes, contributor identification (via UUIDs), the new task system (formerly “workers”), the role of APIs and metrics, machine learning integrations, and pathways for new contributors. It also emphasizes Augur’s architecture for scaling to thousands of repos, parallelized task execution, and opportunities for community contribution (Python, SQL, metric endpoints). --- ## 📖 Main Content: Augur is a **data collection and analysis system** designed to help communities, researchers, and organizations understand the health of open source projects. It functions by **cloning repositories**, collecting commit data, interfacing with GitHub/GitLab APIs, and storing structured metadata in relational tables. Insights are surfaced via RESTful APIs and dashboards. Key aspects: - **Architecture**: Uses “tasks” (Celery-based concurrent processes) to parallelize data collection. - **Contributor identity**: Maps commit authors and platform users via UUIDs combining emails, usernames, and platform IDs. - **Metrics**: Supports CHAOSS standard metrics (issues, PRs, code changes, contributors, etc.), each exposed via an API endpoint. - **Machine learning**: Workers identify anomalies (random forest), analyze discourse, cluster communication, and estimate PR acceptance likelihood. - **Contributions**: Developers can add new tasks, extend metric endpoints (using SQL queries + Python wrappers), or improve documentation/testing. --- ### 🗒️ Notes - **0:01–2:00**: Introduction to Augur, hackathon goals, and live setup. - **2:05–5:00**: Explanation of Augur as a data collection system for open source software (repos, groups, anomalies, insights). - **5:01–7:00**: Example dashboards (license coverage, LOC, issues, PRs, contributor activity). - **7:34–11:00**: Adding new repos/orgs (e.g., Drupal) to Augur for data collection; database entries queued with status updates. - **19:00–30:00**: Whiteboard explanation of Augur architecture—repositories, issues, PRs, contributors, messages, and tasks. - **30:00–37:00**: Contributor identity resolution: UUIDs ensure consistent cross-instance contributor tracking. - **37:00–45:00**: Task orchestration: phases, dependencies, parallel execution, Redis backend. - **52:00–56:00**: Contribution pathway: creating metrics by writing SQL queries and wrapping in Python API definitions. - **63:00–73:00**: File structure: `/tasks`, `/api`, `/docker`, `/frontend`, `/scripts`, `/tests`. - **68:00–72:00**: Machine learning tasks: clustering, discourse analysis, sentiment analysis, PR acceptance likelihood. - **73:00–76:00**: GitHub tasks: contributor resolution, move detection, events, issues, PRs, messages, releases, repo info. - **74:50–76:00**: Importance of validating collected counts against platform metadata. - **76:00+**: Sprint opportunities for new contributors (Python tasks, SQL metrics, documentation). --- ## 📖 References: - CHAOSS Project: https://chaoss.community - Augur Docs: https://oss-augur.readthedocs.io - [YouTube Transcript](https://www.youtube.com/watch?v=nwLlrOvjk_0) --- ## 🗣️ Paraphrase: 1. Original: *“One of the distinct and interesting things about commits is that the platform identifier is not included in the git log… Isaac created logic to resolve commit emails to UUIDs for consistency across platforms.”* Paraphrase: Commits don’t store contributor IDs, only emails. Augur uses UUIDs to unify identities across repos and platforms by mapping emails and usernames. 2. Original: *“In the past, Augur might take a month to collect data for 10,000 repos. Now, with parallelism in Augur New, it can be done in less than a week.”* Paraphrase: The new Augur release dramatically improved efficiency, cutting data collection from a month to a week by adopting concurrent task execution. --- ## 📰 Newsletter: 🚀 **Community Metrics Made Simple: Augur & CHAOSS** This week we spotlight **Augur**, a CHAOSS-powered platform helping communities measure open source project health. From tracking contributor activity to analyzing PR acceptance, Augur turns raw GitHub/GitLab data into actionable insights. Recent improvements slash data collection time from months to days with new **task-based parallelism**. Whether you’re a Python dev eager to build metrics or just curious about repository health dashboards, Augur offers plenty of entry points. Thinking about contributing? Start by writing a SQL metric or helping migrate legacy workers. Learn more here: [Augur Docs](https://oss-augur.readthedocs.io) --- ## ✅ Action Items: - Align Augur with WordPress governance discussions: metrics for contributor sustainability, project health, and equity. - Explore task/worker contributions as a training exercise for new contributors in WP ecosystem. - Connect Augur metrics into potential OSPO governance dashboards at GoDaddy. - Consider applying Augur’s **identity resolution model** to WordPress to unify contributor records across Slack, GitHub, Trac, and WordPress.org. - Frame Augur as a **teaching tool** in contributor onboarding workshops—highlight data-driven insights to promote transparency and inclusivity. --- ## 🧪 Hypotheses: - H1: Identity resolution via UUIDs improves contributor tracking across large ecosystems. - H2: Machine learning anomaly detection can predict early warning signs of project decline. - H3: Community sprint models (e.g., Pi Data Ghana) accelerate metric endpoint contributions. ### 📊 Methodology: - Data: GitHub/GitLab repositories, commit logs, PR/issue metadata. - Design: Longitudinal analysis across repos + ML anomaly detection. - Techniques: SQL queries, clustering, sentiment analysis, cross-platform UUID mapping. ### ❓ Questions: - How does Augur compare with GrimoireLab in real-world governance adoption? - What are the limitations of UUID identity resolution? - Can ML predictions of PR acceptance influence maintainer workload distribution? ### 🔮 Future Research: - Cross-project contributor sustainability studies. - Predictive analytics on repo “risk” metrics. - Usability studies on dashboards for non-technical community managers. ### 💡 Implications: - Improves OSPO governance tools. - Informs funding strategies for sustainable contribution. - Advances equity by highlighting invisible contributor labor. --- ## 🧠 Learning Styles Assessment: - **Visual**: Whiteboard diagrams & dashboards shown ✅. - **Aural**: Limited; could add podcast/voiceovers ❌. - **Verbal**: Rich technical explanation ✅. - **Kinesthetic**: Hands-on demo (repo addition) ✅. - **Logical**: H - Summary: The document discusses an Augur hackathon that covers various topics related to collecting data from open-source software projects. The event provides an overview of the software and how to contribute to it. Augur aims to enable data collection for 10,000 repositories in less than a week. The software collects data on commits, code, contributors, authors, pull requests, issues, and messages through an API. - URL: https://www.youtube.com/watch?v=nwLlrOvjk_0 and I will also turn on live transcriptall right everyone thank you for comingto this uh auger hackathon getting toknow about auger we we have an agendathat we're going to followwhich is right here we're going to talkabout everything about agar and how tocontribute look at the file structurewhat they contain we'll go throughinstallation and the process of adding a new workerforeignI am just gonna do real quick before weget started the one thing I am lessfamiliar with than uh my team right nowis how to add a new worker because wejust changedum that process I'm sending a Discordmessage to my team to see if anyone's able to join usand let's see Zoom I just have to put the uhparticipants and Icopy invite linkall right so since that's last hopefullyone of my team members will be able tojoin I know less about that than theother things in auger but umI'm hopeful someone can can join us so let's just start witheverything about auger so those of youwho've heard of agar know that it is adata collection system for addinginformation basically collectingeffectively all of the information aboutany open source software project andthis is the directory structure how itworkscan be described in a couple of different waysthe first that I'm going to show youis just through the front endum there are a couple of thingsand I rememberI'm just trying there was a there was aversion with everything that I usedyesterday what was it oh goshBrain Brain Brainall right well I'll it'll come to memomentarily soaugerum effectively if you look at the groupso under groups you'll see a list likethis in the front end under repos you'llsee a list like this which is each ofthe repositories in various groups and I can order them by group nameand under insights which there aren'tany I don't I don't believe at thisum particular agar location and I'mtrying to remember one that oh I know Iknow what it isso I'll use the eBay instanceunder insightsum auger has some workers that look for anomalies so the way that works is ittrains the data based on the lastthousand days of commit issue and pullrequest activity and looks for changesfrom the moving average using uhuh for random Forest algorithm toessentially identify whether or not inthe last 14 days any particular um repository has seen a statisticallysignificant increase or decrease inactivityand I'll explain the machine learningworkers that we go through the parts ofaugerthe purpose of auger is to give someonewho's looking at a collection of OpenSource projects some kind of idea of youknow how much activity and what kinds ofactivity exist in in that repository so similar to grimorelab andother tools we're trying to present asense of the overall health using augerauger metrics and when you're looking atuha list of the reposit's somewhat intuitive that for exampleum somesome repos will have more activity thanothers is this in the direction of what we'relooking for under everything about agarand how to contributeforeignlooking for a yes Sean you're on theright track for an intro or notso at a high level this is what auger'strying to accomplishif I go to for example this eBay projectyou can see that auger indicates license coverage it lists the lines of codeadded by the top 10contributors over timeif I widen this a little bit you can seethe lines of code added by the top 10authorsand if I click a year you can see bymonthumhow much let me go back thereand it's like that now this showsaverage lines of code for for commit it shows organization information which hasto be provided by whomever the augeruser using organization isand then it looks atum gives you reviews and pull requestsby the weeknumber accepted by weekuhpull requests decline issues openedclosed Issues new issuescode changes which are these are linesor commits these are lines of code added per week and then if there were Libraryfiles used they would be listed thereover here there's another tab calledrisk metrics which shows the number offorksby week the number of committers by weekwhether or not there's a cncf bestpractices badgethe types of licenses that are declaredand where there's no assertion of the license but a license of some kind isdeclaredand then the coverage and it alsoindicates the percent of OSI approvedlicenses of those that exist so thisthis is auger's original overview ofinformationuh provided by weekcelebration I have a question adeveloped question yeah soumlike will it be possible for you to like show us like how Olga works with anexampledoes it like work instantly like whenyou plug in a repository does it takelike does it work instantly where itgathers all these insights like say forexample you're takingum maybe a random repository and putsputs theum bit of beautiful details I knowthat's not because it work likeinstantly then if yes could you likeshow us like an example sure so it doesn't do it instantly sothe way that and and I most Tools infact all tools that are in the chaosproject don't provide data instantlythere is a data collection uh period soit takes a certain amount of time rightnow the current version of auger whichis under the auger Dash New Branchandum I'll just make some notes here over the end over the agendaforeignI can typeumthe current branch isBranch we are workingon is auger new and that that I expectedto release any day now I've been workingthrough some final glitches in in auger newumreally very minorum glitches so in the past it might takeauger over a month to collect data for10 000 reposnow we can collect all of the data for10 000 repos in less than a weekand that's because of some newtechnologies that we've we've come come to employ so when it comes toadding new information to Auger thereare there are two approaches one which Ithink is the place to start isimmediately following the installationof auger and and is at the command lineand I'll show you thatuh briefly now I'll just show you a newauger interface oops if I could type TV without ansorryauger has a new interface hmmright now and this this new interfacedoes a couple of things that I'llexplain briefly one of the things itdoes is if I create a userI can go to that user's profile and adda new repo or organization that I want to collect data fordoes does anyone have uh so many of theones that would be obvious like chaosare already collected does anyone have aGitHub organization that they'd like tohave new data collected forany organization would doso you do not need to have like a rightassets to submit to one correctokay let me find one let me let me use a to-do group maybeyeah that would be greatsoall I need is the GitHub organizationnameor I can I can do the full URLand we get that too okay I thinkum I'll drop the Drupal on the chartsokay drop it in the chat hang on chat Drupal okayso what happens here is I'll add Drupaland that will take a minute we'reworking on you can see by the X notbeing finished here that it's stillworking one of the changes that John oneof our maintainers is is creating inthis interface is it will show you awaiting sign and so now it's uh it's astate it'll say successfully added repoor org and umit's not apparently a clear we're alsogoing to make this a little bit moreclear what your user repos areum now if I go back toaugeroops well that didn't workumit will let's see if it added so it doesn't it doesn't show you thatimmediatelybut it did add the Drupal organizationand I can demonstrate thatum real quickly here give me one secondI can demonstrate it that it I candemonstrate that it actually addeduh the repo by showing you the databaseummaybe that's not the one all righthang on just a secondvia DOT chaos TVdeath unstable I thinkoh I know I know what I didthere's a little bit of a it shouldcreate ordinarilyunder normal circumstances umall right well this would reveal that Idon't recall specifically whichdatabase this is getting added tobut you'll have to trust me while Iremember thatum uh lateruh that it does add theumforeign because nobody wants to watch thisresume recording so when you when you dothat step where you add a repo group youend up sharingit ends up creating an entry for all ofthose reposand I'm just sharing a portion of myscreen right now so this is the repodatabase and you can see I don't know can you see this okay becauseunfortunately I can't make it biggeryeah I can so you can see that it addedall of the repositories under repo underDrupaland so one of the indications that it'snot collected yetiswhen you addwhen you add the repos it'll cue themfor collectionand repos that have just been added in the repo database will list the git URLbut it won't the repo status will be newand it won't be as yet processed it sothat the repo name or the repo pathwhich is internal to Auger the repo pathis where the cloned repository is storedand the repo name is of course the nameof the repo and new would change tocomplete once the calculation of all ofthe information about the repo was was satisfieddoes that make senseso if I go back hereunder underthis eventuallyyeahthere's an error there because I have abunch of empty repo names which is aagain something we're working oncorrectingbut now you now you can at the zoo.castTV site um and I don't know how to make thisportion of the screen bigger butoopsthat they will eventually show up overheremake senseyeahokay so go aheadso the next maybe to explain kind of howauger Works um one of the next things I'll do sothat's that's basically showing you thatwhen a repo is added the repo is createdin the repo database and is cued forcollectionat that pointwhich isuseful to to say the leastum and here are some repos that have hadthe data collected for them already um but your question was just kind ofhow do all the pieces work togetherrightlike what's the what's the technicalflow of agar am I getting that correctlyyeah okay so I'm trying to decide ifit's better toLet Me Maybe explainhow about I explain like in a on awhiteboard the overall architecture of how these things all work togetherand go back into describing the filestructure and more in Greater detail howthey all work together does that seemlike a good approachokay all right sowhy get my whiteboard set up I'm justgonna how many times I'm doing this fora class and I forgetum things like the recording so we have getrepositories can you read the word getall right or is that shining is there alight shining on thatit's a little bitdoes that make it better or worseokaywell maybe hereall right that's a little bit better butcan you see the word get yeahyou can okay I'm gonna use some darkercolorsI'm moving hereokay so your get your git Repositoryalmost always exists on some platformand this can be usually it's GitHubor gitlab and in addition to the git repositorywhich which they store there's also whenthese get terms herepull requestsissuescontributors and messagesnow all of these all of these things which and you can read this okay I'msorry I just want to keep making surethat you can read it all rightyeah yeah I think it's clear okayso all this data exists on a platformsomewhereand auger hasobviously we list the repos that getattached and then we havecollectionso data collection forgetwe do acloneand we countcommitsforeignsof codeauthor author is the person who wrotethe code who who made the commit the author is the basically the person whocommits the change and then we have aterm called contributorfor which there's also data in thetable and this is the personwho mergesthe change these can be the same peopleand this is the author's the person whocreatesthe change triangles a chemistry function for change if you're notfamiliar with thatfor pull requests issuescontributorsand messagesthis is all done this is all collectedusing aforeignAPI and so we havewe have something calledso to access the platform APIauger now has something called tasksand I'll show that to you tasks are theartists formerly known as workersso a common auger language previouslyhad been workers now we call them tasks each of the tasks performs functionsthat collect all of the data related tothese primary entitieson GitHub it's also worth notingthat there are other things that wecollectthat could be relevant for a particularcasethese include events umforeignmetadata includes things like the plaqueessentially the platforms Viewthe flat the platform count forissuescommitsPRSEtc so that becomes relevant a littlebit laterbut these are some of the other thingsthat the the tasks also collect so for atask that collects uh let me use oneexample pull requestsinformation foreignof course the pritselfit also includesumthe um the uh what do you call it the headand the base so we know what Fork wasused to create that pull request and towhere it was mergedit also uh these this pull request basealso includes a statusand that can the status can be merged [Music]closedor open merged means the same as closemerged and closed both mean closed ifthe status is closed it means it wasclosed without being mergedand if it was merged of course it meansit was merged and then of course whenit's merged it's closedum it can also it also includes things like assigneeslabelsand some other other metadata reflectedin the tables that it may not beoccurring to me right now and then foreach of these pull requestsand all of the things about it there are[Music]there are pull requestsfiles andcommitsso in the case of pull requests all ofthe thingsareare umin there so the pull request isn't onejust one table but it's all the thingsabout a pull request the same holds forissues same same exact metaphor um an importantpiece of all of this istheassigneesum are there it also includes thethere's the[Music]yeahwe also includewho createdthe pull requestand who closed or merged itthese arepeopleso and obviously all the merged datesand things like that so the things I'mcan you see that I'm I've circledassignees people created and closed themerge in purplecan you distinguish that color purpleuhyes no not really okay let me um let me try a differentcolorwhat about the Orange is that easier todistinguish that's much better in myopinion okay okay good so these are allcontributorscontributors are obviouslyimportantto us so I think I heard Isaac's voiceIsaac joined us Isaac's gonna explain the tests of how much time you haveIsaac uh I have a big chunk oh okay allright so greatum but I will still try to get to thatpart of the question while you're hereearly so you don't have to spend twohours with usum so contributors are really criticalbecause the author for a pull requestand the contributor for a pull requestthe person who merges it all of thesethingsare people andone thing to know and you may you mayalready have figured this out in a senseabout any kind of uh auger or anythingelse is that knowing who did somethingis kind of important and useful and wehave an Isaac specifically has createdsome logic because if you recall we'redoing a clone countfor the commits one of the distinct and interesting things about commits is thethe platform identifier for the personis not included in the git log and sothese by defaultare emails and everything elseisa GitHub and I'm just using GitHub as anexampleumit's both an ID which is numeric and a usernameas an aside username people cannotchange their username on GitHub so thecanonical platform identifier is nowID Isaac can discuss a little bit moreabout how that gets resolved so whenauger run you have a questionoh yeah for uh contributors in terms oflike how we're identifying them like wehave a EU ID that basically takes intoaccount like the user ID and theplatform ID together and that's just like one value that's Universal for allcontributors across all platformsthat's actually importantthanks Isaacthis is a change in the latest versionof auger the fact that the contributorID is a uuid that combines the what arethey combining again Alex I mean Isaacuh it's the like the canonical light itdepends on the platform becauseplatforms have different things but for GitHub it's the platform and the uh andthe user ID I mean obviously theplatform ID for all platforms will haveto be there because it distinguishes theplatform but the individual user ID willbe a bit different because you knowand we're using the ID becausepeople can now change their username soif we use the username it's it'spossible a username will go away the IDwon't go away if you change yourusername to Tony from Fred then we would lose all of all of Fred'sreferences but Tony and Fred will alwayshave the same ID so it's the platform inthis case GitHub plus that ID thatGitHub assigns to every user and thenIsaac's processes withuh the commit counting tool which iscalled facade derived from work thatBrian Warner didum 10 years ago and significantlyevolved with Brian's blessing and permissionum in auger we'll resolve all thatinformation to the same contributor so acontributor if if my contributor islet's let's go with me if I amdead markerif I ams at goggins.comin my commit record because commits are all by email thenIsaac goes through and identifies thatessigoggins.commaps tos Gogginson GitHuband this whole thing is stored as a uuidwhy this is important is because if you collect uuids for a collection of athousand reposthose uuids will be exactly the same onany other auger instance where Icontribute with the email assetgoggins.com or any of my other emailsI've for example in my case I'veprobably contributed to GitHub on 12 orusing 12 or more emails and my uuid willbe exactly the same on all instances ofauger which ultimately would make iteasier to integrate all of the data from all the instances of instances that youmight have of otter if if you chose todo thatuh so the platform API storesjustum if I'm looking through the platformAPI and the contributor that'sautomatically storedusing this same uuidbut I have I have it I have this GitHub username and passwordalready collected because that's whatthe API gives me and if I've also madeconnects it's going to map to the sameto the same uuiddoes that so that's and then the samewould hold for issues uh contributorsare gathered following this this exampleso anytime anytime for example a pullrequest an encounters a user that isn't already in the contributors table andcontributors are stored in thecontributors tableit will go and actually retrieve theinformation for that user that isn'talready in the databaseis this all making sense so far or arepeople asleepmaking sense so far I like okay probablythe the the conceptually at least themost important other thing to share um uh that that's important tounderstand is that messageswe see messages inmany places but the two main placesare on issuesand pull requestsand so the way that we've organizedmessagesis that there'suh and you can see the bottom I hope is I have an issuemessage is like a comment that you wouldmake so if I have an issue one issue andI have a PR1pr I have onemessages table where all of the messagesfor any platform and or all platformsand any issue in PR are all stored in the same tablethere's a bridge entity relationallythat's basically issue messagewhen we call it issue message refand PR messagewhich is PR message ofthat's important because if you onlywant to see for example the issues orthe messages for pull requestspull requests has a one to many relationshipwith pull request messagesand pull request messagesyou know Isaac is this is what's thewhat's the relational thing here is thisone to oneuh I can't make out what does it saybetween PR and this is pull request pullrequest message ref and messages umhere let me see actually I don't know ifit opened my head because I'm thinkinglike a message would only applyto one prioryeah like there'd only be one referencethereforgive me I designed this relationalmodel five years ago or six years fouryears ago yeah Andrew's been doing most of the method stuff so I'm not superfamiliar with it so I'm pretty sure thisis one to onewhere each individual pull requestmessage has a single message in themessages tableand the reason thatum we have this bridge entity inrelational terms is so that we candistinguish the origin of of themessages now in hindsight we could have done this differently but as I said Idesigned this four years ago andumprobably made it overly relationaltwo important things one is you candistinguish pull request messages fromissue messages or other messages that wegather and there's only one uh all ofthe messages are stored in one tablecalled messages so cons and and so a taskis basically anything that gathers datafor for auger that's what that's whattasksareyeah it's basically just likeuh like and it like a concurrent threadthat auger can runor not really a thread but you can thinkof it as wellbut it's what we use for data collection any any like I've thrown a lot of junkon this whiteboard any any conceptualquestions hereyeah I wanted to ask one thing yeahyeah so I wanted to ask about is thissome kind of an ordering that goes onwith tasksis there some kind of Moder oh orderingyeahyeah there's a uh like task fororganized into phases basically so uh there are like large groups of tasksthatum are differentiated because like forone reason or the other they absolutelycannot or they're not supposed to run atthe same time as other groups of tasksum so like an example would be likeum we have a preliminary phase where uhcurrently the only thing that we do iswe check all of our sources uh in likesay we have like 10 GitHub repos wecheck to make sure those haven't moved URL or anything before we run the restof the data collectionum another example would be the machinelearning workers like uh they're prettyresource intensive so we don't want themrunning at the same time as anythingelse so they're in their own phaseum and within the phase uh you havevarious uh ways of organizing individualtats uh that are given to you by celerylike uh you can put all a bunch of tasksin a group and they'll run all at thesame time put a bunch of paths in a chain and they'll run sequentially anduh there's uh more stuff you can doobviously but those are the basicsbut after prelim preliminary Alex it'sthe to all the GitHub tasks kind of runin parallel or do they run sequentiallyin some waylike the podcast issuesare you asking if the like the repocollect phase do things run all like concurrently yeahyeah they doumlike uh if if things aren't likedependent on each other and they're inthe same phase there's no reason whythey wouldn't be run at the same timelike uh like obviously like stuff likeuh there's a task for uh pull requestfiles like that can't run until pullrequests is run because it's dependenton the pull request existingumso that that is like a directrelationship that's specified within thephase but like um something like uhI don't know like facade can run like atthe same time as we collect fullrequests because like there's no reasonwhy they can'tmaybe it's like two workers are updatingthe same table then they might not runat the same time is what the idea anddefinitely machine learning workers needthe data so maybe they're even after theentire collection is done yeah we have actually run into to to deadlock errorsin regards to editing the same table atthe same time butum we've got they're very rare at thispoint and I'm optimistic that they won'tlike I don't think that we'll need to bethat restrictive and uh or capable usageso when I one one of the things Imentioned earlier is that where it usedto take over a month to collect data for10 000 repos now it takes a week or soone of the reasons is the auger new branch which will soon be the mainbranchum does a massive amount of parallelismcompared to the prior version of augerokayuh just just one last question over herelike uh this parallelism that we'retalking about is it done by the use ofmultiple servers are we usingmulti-threading in some you know on thesame server to achieve that panelismum it can be used with either right now where uh I'm just I've just been testingit on the same server machine uh it'spossible for both though uh salarysupports bothuh because whenever you schedule a taskor a phase or a group of tasksum it just sends like it just cues thatall up onum on something like redis or theirother uh back-end viewing uh servicesbut like we use redis and so if you wereto have your salary instance rather thanon a different server you could totally do thatokay rightoh okayum there was something else I wasthinkingthat mightwarrant explanation right nowumjust one secondum it's fine yeah Manuela has a questionoh okay so I'm sorry I can't see thetasks uh I can't see the the tab let mesee hereuh emmanuella do you want to guard so I'm having a low battery and I justwant to ask it okay yeah go aheadtake it enchant if you're havingmicrophones uh do you want to use the chatssince I think your audio is not comingupokay I would just wait for the questionthenwell I'm waiting over into the question importantif you don't mind reading your questionsout loud when it comesokay um question is um trust Legend veryinterested in all girls and so how can IcontributeI think that's the second part ofum yes [Music]umis Amela able to get a charger and joinus for that second partnah she she's almost dropping off somaybe once okay all right let me try itlet me try to hit that as quickly as Ican if not it will be recordedso the the first thing that you probablywant to think about when it comes tocontributing oopsisto be going to the to the downloadsumso if I were to look at the Augerthing here there's there's two placesum to contribute one is the piece wherewe actually go through and and install it and obviously obviously kindof prerequisite butthe first place that I would pointsomeone who maybe wants to makein the auger directory so under the rootof wherever you clone auger in the augernewsand I need to share my screen so if I'mif I'm here under the auger augerdirectory there is a folder called APIand under API there are apis are effectively queries that present arestful API that provide an existingchaos a turkey or effective modeland there are two kinds one is astandard metric and the other is anon-standardand they have various characteristicsthe end resultuhof whichis reposed soit the the things underthings under API if they're a standardmetric for example one of the standardmetricsand these all return Json objectsthat provide specific information in thecase of repos it's the ID a namesometimes if it's got to get covered because sometimes they think exist we'reactually not going to include thoseextrait includes the total number of issuesinternal repo group IDum the URL andso that's what the reposAPI is now the API structure forstandard metric would be after we go soyou could type inthe idea of a repo and a metric so onemetric is emitters thought it was committersof course I canumforeign I don't know thank you okay so code changes isumbut go under metricsandsubmit is installedforeign a metric called code changes umendpoints and the standard metric likethat will give you the name of the repo this may actuallybut it'll you know the audio kind ofdropped do you want to change thatsay it again your audio droppedit's betteryeah yeah sorry I had to move mymicrophone over to do the Whiteboard andI forgot to move it backum soone good place to start contributing is to look at the existing apis and you cannavigate them in the OSS Docsum areaso that's that's one API Doc and point and so that's um that's how they'rethat's so if I was to go in hereand under API metrics again our standardmetrics routes are non-standard metricsif I go into one of the standard metricsthis is actually a very easy pattern tofollowso if the metric that you want todevelop is inside is a chaos metric youcan take a look at any of the files under this metrics directory and theysharea common structureat the very topare these 12 lines of code with the spdxidentifier a description of what's inthis file these libraries and itinstantiates a database connectioneach individual metric can be identifiedor can be developed just using SQL so ifthere's data in a chaos metric or metric model that you want to build the SQLfor first of all some of the SQL May atfirst appear somewhat complex but keepin mind that there are hundreds ofdifferent queries already developed andyou can use those as a pattern to followfor developing metrics you could also inthe slack Channel ask a question like Iwant to develop a metric endpoint for x and we can help you get started with theSQLall of these metrics in addition to thisregister metric declarationhave a definition so you'll Define themethod that metrics exists under andwhether it's a repo and this signaturerepo group ID repoid begin and end dateand periodif there is no repo group ID providedyou need to provide a repo ID that's the most common use the parameters aredefined hereso in a standard metric these are alwaysthe sameif the application or end user does notprovide a begin and end date simply thebeginning of time according to computersis provided January 1st 1970 and the enddate is essentially the very second thatyou are making the requestthe SQL variable is set to none just incase it's previously been set and then it checks to see if a repo ID has beenpassed if it has it uses this SQLAlchemy function SQL alchemy.sql.txt youcan see up above that we've aliased SQLAlchemy 2s so that all we have to dodown here is s.sql.txtreturn triple quote put in your SQLclose triple quoteuh One X tent there and it goes there if a repo ID group is provided it's aseparate queryand then results in the standard metricare always returned as pandas readingthe SQLconnecting to the database with theseparameters to get the results and thenoops the methodexcuse me Returns the resultsthose results gets processed getprocessed by auger into this Json fileas an API endpoint so that is one easy way without gettingreal deep into auger that you can getstartedum helping with auger because it appliessome very easily templated things andthen you can build the metric the onething that then we do ask is that onceyou've created your metric and you candecide if the metric that you want tocreate is something logically inside each of these existinguhpython files or if it warrants its ownpython fileany any questions before I press onso um I think maybe I'll let you Manilaask a question because that's ourquestion it opened my chat just in case it comesthat wayforeignwhile you're preparing your question ifyeah if if there's a like if you want todo like the other thing that we'llprobably talk about are tasks for datacollection uh as well as installationand deployment but if youwant to get startedyou know we can spend an entire session like this going through getting youstartedoh I guess Manuela dropped off butum though yes it looks like she didoh my Godso I wanted to ask about some theseprint events that's you know maybe youwant tobe nice in order to be able to have abetter Clarity on how um our goal works and how to contributeto itso are you asking about I heard the wordevents sorry asking about the filestructure or are you asking specificallyabout event objects that we might gatherokay um Sean so Ahmad is the person Italked about from PI data Ghana that Iwanted to do springum with auger yeah yeah I did a slackchat um well yeah I'm not sure you've seen it yetuh I probably haven't I was at the LFmember Summit last week and I'm prettybehind on commsyeah so Amanda are you asking aboutumwhat's kind of what ways can theycontribute or like what was yourquestionyeah yeah so it's kind of everythingtogether like what ways we cancontribute and umI'm sure most people would want tocontribute through code or some peoplewant to contribute through code and wanted to I just wanted to like have abetter idea ofum I I joined earlier but I I gotdistracted with work and so I didn't getsome of the details but so I just wantedto see if uh looking at the filestructure we could you know get kind ofwhat each of those files are doing andalso how what do it can contribute okayso what Sean I want to add some morecontext to uh Pi data Ghana um it's like a community andum Ahmad wants to run like a Sprint withOlga so he wants to kind of likeunderstand how high dataum community members can what's what andwhat's available that they cancontribute since they do a lot of like Iknow they have like a lot of pythonpeople interested in Python so I I thinkfrom the file structure as well we wecan get through how um different members from PI data cancontribute via the Sprintokayum my thinking is that one of IsaacI'm going to turn to Isaac here before Istart jumping off because Isaac isdeeper into thingsum than I am Isaac what I'm thinking offor a group like Pi data who has a lotof python skills is that we mightum arrange or coordinate uh Sprints around some of the tasks that we haveyet to move over fromon the previous version of auger likethe value and dependency workers expectespeciallybut I don't know if that's not is thatall rightyes uh it would be great to have likejust experience like having new peoplelike look over like the tasks in this inthe face system that um I designed tobasically just making sure that uh they can make sense of it and write gooddocumentation for it and basically likewe should have a worker template like wehave in the old version for the tasksthat we have nowum but yeah okay that's a good idea sowhat I'd like to suggest that we we donext is I'll provide a brief overview ofthe the file structurein agar new and then uh I'll starttalking about tasks andumkind of set up a question for Isaac to help us walk through that partdoes that seem reasonableI want this at workyeah I think that I think that's goingto be a good start thank youokay so I'm gonna go back to the primethe main auger directory under the augerNew Branch can't emphasize enough thatthis is where to workdot GitHub isum essentially any GitHub tasks act GitHub action type things that we'veorganized you don't need to look at thatthe auger directory includes API andwhat else so I would consider theapplication which is kind of the coreum auger face which you can ignorethe tasks which I just mentioned andthen utility functions which are as likeI assume the utility functions aresimply things that are shared acrossdifferent parts of auger Isaac may have stepped awayoh sorry whatum the the util directory is just abunch of utilities that may be sharedacross different parts of auger yesexactly okaythe other directories are Dockersomewhat uh self-explanatory that thisis where our Docker stuff existsuh front end is the directory for ourwhat I what I'm calling our old front end which is basically thisum that's all uh view JS not to worryabout for the most partscripts are primarily things that we useto install and configure auger we havecontrol scripts Docker scripts andinstall scripts so those are mostlyshell scripts that are used to getaugers set upand tests our unit tests that primarilyAndrew has written that effectively test the differentparts of augerum and eventually we'll reintegrate thatinto a GitHub workflow of some kind itused to be Travis CI but Travis CI kindof blew up its whole model for everyoneum and so now we're putting the teststhereso the meat of where contributions wouldbe most most welcome and helpfulobviously in any place where you find uh something you want to tidy up orwhatever always welcomebut under the auger directory it's thistasks directory which is where the datacollection work takes place and thisdata collection work is divided intofour main categories data analysis iswhere the machine learning workers liveget is where the facade or commit workerstuff lives GitHub is where a great deal of stuffexists likecontributors detect move eventsit's just pretty much anything thatinterfaces with the GitHub API yeahum exists thereso this is a a place whereum things you know contributions wouldbe useful a very useful extremely usefulum to give you an idea the tasks directoryoriginates from a different directory inour current main branchand it's essentially the way that wehave been able to paralyze thingsparallelize a lot of the work to enablemuch faster collectionthe workers that have not yet been movedover to tasks include the depths liveyour workerThe Depths worker and there are others but I'm going byhighlights hereand the value worker so in terms ofworkers that have the highest Roi for usit would be depths worker depths libyerworker and value workerumforeign Isaac maybe now should I hand controlover to you so that you can demonstratekind of the process that you wentthroughor uh just in terms of like how lightsare made like if yeah like if I let youdrive you can probably do so much faster than I coulduh I I was uh gonna pull up uh just likeuh one of a simple like a simple pathand just like show how it's organizedyeah so let it giving you the lettingyou share is I think I think we agree onthat letting you shareyeah one secondif you're if you're able to I know you Iknow you're running on uhhardcore version of Linux probably yeah yeahum it should workuh one sec because it's a because I'musing vs code and that's an electron appbut uh yeah one sec here I'm readyyou are readyno okay I got a big error message fromZoom saying that resume recording sowhile we while we wait for uh Isaac tocome backum the different tasks for data analysisthis is where the machine learningworkers principally live the clustering worker clusters repositories based onthe patterns of communication that areidentified as present it also does topicmodeling for each of the repositories sowe can see what kind of topics arediscusseddiscourse analysis identifies 11differentcategories of discourse which can thenbe used to discern a Time sequenceanalysis of how conversations go around pull requests and issues on individualrepositories and the message insightsworker uses a software engineering tunedsentiment analysis and Novelty detectionalgorithm to identify the nature ofspeechin terms of inclusive or not inclusivethere are also a couple of repositoriesthat were adding to this worker to lookatinclusiveness specifically and also ableist languageand the pull request analysis workerlooks at the history of pull requestsaround projects and makes aprobabilistic estimate about How likelya particular pull request that iscurrently openis likely to be mergedthe get worker is this is entirelyfacade so it has uh it runs the oldfacade tasks as we modify it there's some user utilitiesthat we haveum in hereand so that's all that the git workerdoes is everything related to commitsGitHub worker as as I noted uhpreviously it looks at contributors soall the logic for resolving the emailaddresses and the con to a contributoron a platform takes place here uh the move detectionworker is the first one that runs and itdetermines if a repository that'scurrently in our set for collection hasmoved so it's more frequent than youmight think than that a repository willchange organizations or change its nameand when that happens for a period of myanecdotal observation up to about a yearand a half GitHub will continue toresolve all of the old links to this new location but we just go aboutproactively moving it events look at theevent stream on GitHub GitHub it doeshave a 400 page limit of 100instances soyou always get to last 40 000 events butthe longer you're collecting the lesslikely you are to have gapsfacade GitHub is really focused on thatcontributor resolution piece so you it's in the GitHub directory because it usesthe GitHub apis to resolve contributorsissues and pull requests are fairlystraightforward they gather all of theissue and pull request related dataas I mentioned all the messages are inthe same table so once all the issueall the issues and all the pull requestsare created will start collectingmessagesfor or each of them and in all in generally speaking we literally getevery single message and it's metadatathat's issued against a pull request oran issue on a platformreleasesspecifically looks atum if you if you were to go to GitHubuh for exampleit gets this metadata so you can seethere's a releases thing down in thelower rightanytime there's a release um you get this uh you get all of thedata about a release and all of thereleases on a repository collectedreally state it can be especially usefulfor when you're trying to look atactivity in a time period that reflectsthe interests and needs of a of arepository so if I look at my forexample my cycle of pull request issuesand commits and I just look at them by month those months have less meaning interms of the cycles of a project than ifyou were to look at them in the contextof time between releasestime between releases tends to be aa good indicator of the Cycles now thatsaid not all GitHub repositories I wouldsay slightly more than half but lessthan two less than three quarterssomewhere between half and threequarters do use releasesum but a quarter to a half don't so obviously that data is only usefulwhenyou're doing you know when you're whenthey actually are issuing releasesrepo info is especially important and uhas a uh for auger because what repo infoshows you is all of the data about arepository that is platform metadataso if I go toI think this is no all rightactivity metadatarepo underscore info of courseI don't follow my ownforeign becauseif I look at the number of forks thenumber of Watchersnumber of committers all veryinteresting where it gets superinteresting let me go down where there'ssome actually some dataissues count because we're collectingall the issues and we get the issuescount metadata we can know if we havethem allsame with pull requests if I get thepull request count I should have1459 pull requests for this repository and 462 issues for this Repositorythat's that'simportant because now I now I can tellwith some with a great deal ofconfidence that when you're doinganalysis of pull requests issues andcommits that you do in fact have all ofthe dataum most other tools do not do thisverification or give you visibility intothis verification and so for example with GH torrent or get archivethere's no metadata and we know there isdata missingum with with other tools there is novalidation that we have the correctcount and so one of the things that Ithink auger does well that's superimportant is validate against theplatform metadata to ensure that we haveeverythingany questions or should I keep talking oh Isaac you're backI should be able to share uh my screennow okay all right sorry I just I justkept rattling on go go ahead yeah noproblem uhokay it looks like it's working okayyou're sharing your screen now I believeI need to are you sharing your screen inZoomyeah okay so everyone can see this yeah okayawesomeso I think what we want to know is wellone of the things we want to know islike let's take the the value worker forexamplewhen I guess you could explain it firstbut what I'm thinking of are what I'mthinking of is what are the steps if onewanted to convert the value workerum into a taskwell uh um I actually did this with therelease workerum which I've converted into the release task right here your collect releasesokayum and I got I went to the old uh likelogic and I put it inum well first of all I put the wholething in the uhand then GitHubgetting the GitHub file under castokay uh and then I made a folder forwhat task it is so it's the releases uhstuff like that goes in its own folderso your first and then uh so converting uh so steps in I'm just going to dosteps in the notes steps to convertold workers inmain to tasks in auger newso one is youcopied just the error old worker intoa task file under tasks uh I wouldn't copy the entire file whatI would do is I'll just like get thedirectory structure organized before Iwould start writing like um I would justlike can you create a folderyou know whatum so youcreate aI guess uhyou can just walk us through it so likewhat does that mean create a work createso I'm imagining I've got a workersdirectory with value worker in it wouldyou just first create a value worker avalue directory in one of the tasks yeah pretty much I mean it depends likeI don't uh what does the value worker dothe value worker does all the codecomplexity accountingand does that interface with the GitHubAPI it does notyeah then that should probably go andlike umuh either get or its own folder if it'snot related to like the get logged orGitHub because like it's mainlyorganized by like data sourceum so if it's like a machine learning worker it does reference the facadecloned repo directory so I suspect itgoes in the git worker yeah so for thatone I'll open it sureuh and then in the git folder I createthe value worker folder and then in thatfolder what you want is you want to taskstop by and you want to core dot piumand cast out pi and chord.pi and isthere any like template or what would be what would the template for those bemaybe you could walk us throughwhat umit would look a lot like the releaseswell the release I chose the releasesmodel just because it's really simpleum because first you would just likeimport all the database and like stuffthat you need to run it so you need toset the database sessionum that we have it needs the um wellfirst you need to you need to import theother file because that's a part of itbut uh and then you basically just need to import the database stuff and theother stuff that you're writing overhereI don't know if you can see my curveshere butso is this the umso core I see so the task.pi Importscore.pi but what goes in core dot piword up high is is the actualfunctionality of the worker the tasks tojust be like the logic that starts ityou knowokayum you can have like easy error handling for like the whole model like from hereum and then all like the actual likemanipulation of data and insertion tothe database and everything happens hereokayso when umso when you did this I assume you had tochangeby Ruth I assume that you had to changelots of things or some things about whatwas in the value worker um I didn't have to change as much as Ithoughtum I pretty much uh just had to umuh like manipulate it so that it woulduh interface nicely with our databaseormum and insert it correctly but uhum it wasn't that hard to do like you'reum yeah this is how we insert data nowwhich is a lot simpler than the old way that we did it in my opinion at leastum just like any of the the list ofdictionaries of data that you need toinsert at the table that you'reinserting to get into and do UDP on thattable for um support for uh on conflictto updateand uh if if uh you're not doing it onconflict you update insert then uhum it is most likely better to do it inan actual like uh SQL text and then justexecuting that SQL text um but in most places you you would youwant to do the on conflict you updateumsoumsession insert data blah blah or does itsay on conflict do updateum that's the herewell the insert data method is for theon conflict to update there is an optionto notum to change it to an on conflict do nothinglike that's what the insert data methodis forum if you want to insert it manually youstill can with the um you can do like alike an s dot sql.txtoption you can just write SQL here likeor you can just execute that umbut yeah but in most cases you want todo the on conflict you update where theion clock will do nothing which is whyit's just called insert data and it's ageneral methodright there are cases in which you wouldneed to doum like a specific SQL query and you canstill do thatokayso probably probablyum Ahmed what time in what time frame is your group thinking ofum doing your auger SprintI don't know if we lost X-Men or yeahsorry I I was um so um I think umsometime over the weekend so maybe wecould justum Galvanize those who will beinterested to register for the eventsand thenumlet them have like an idea of what the um project is about so that they canprepare towards it and then we have likeum afive four to five hour Sprints where youcan get them involved and contributedifferent capacitiesokayum what I'm what I'm thinking isum so you kind ofuh I'm fine so the way that I think it could be done isif we um the way that I think this mightwork isif uhwe would do two things to supportthat effortumone is depending on the time of daypossibly I could be available for basicquestionsobviously there's a getting augerinstalled part that needs to take place what operating system aremost of the folks working inI've metmost of them were working with WindowsWindows operating system for me I'mworking with a uh in Linux machine andwe also have very few people to workingwith some Mac laptops but majority will be windowsare they comfortable at a Unix commandlineumyeah I think some of theintermediate users will be morecomfortable with umum it's the Linux command line yeahthey would be comfortable with the Unixcommand line yes yes yes okay and howmany participants do you think that you might haveum we can have aroundum20. that's yeahokay so with 20 participantsumfor new for new data collection IsaacI'm just trying to so one thing I canthink of is if we created a branch thatsort of templated out the basic steps and created an issue explaining whatneeded to be done forthree workersoh yeah I I that's definitely somethingthat we should haveum and thenso if we did that then so essentially wecould create a branch where the theworkers weren't working yet but we hadsome you know we described in the issueswhat needed to be done for each of thethree that I have in mindum and then with 20 people umI think if we had a general templatethey they could uhso everything that we get right now isfrom from GitHub I don't know if ifthere areother pieces of information you wouldwant to get from GitHubor if some of them might want to work onAPI endpoints or things like thatokay yeah uh Andrew would definitelyappreciate that if people wanted to helpwith the endpointsokay perfectumso I met I think umif you're doing it this weekend I thinkuh maybe if you could give us a few dayshere to put together those templatesanduh issuesor how much how much in advance do folks needyeah we can do this weekend or to getmore people we can have it next weekendbut I also have a question is is there away we could um help people who for somereason are maybe not able to finishtheirum tasks that day and maybe they needsome extra support to complete theirtasks after thatum that event yeah I think one one way of course is always uh issues uh anotheranother good way is uh I will scheduleanother one of these sessions like ifyou did it inif if it's if you're flexible and youdid it like not this coming weekend butthe weekend after that would give usmore time to be preparedumafter works we can do it next weekendthen so that would be uh be like theweekend of the my knowledge of calendarsisuh limited hang on let me find uhlet me find my calendarokay so yeah this what are you thinkinglike the Saturday or Sunday or what dayof the week are you thinkingum Saturday Saturday would be perfectokay okay so wait a minuteIsaacthanksgivings on the 24th rightuhthat sounds rightokay yeah so all right we yeah that thatwould work I can I can I can be aroundumto do some support on that day but Ithink probably the lastuh thing that we need to think about is auger has historically been difficultfor people with Windows computers toinstallit onandumbecause Windows everything on one I meanyou're in a python Community youunderstand Ahmed that everything worksdifferently on Windows yeah and and Idon't know how experienced yourcommunity is with dealing with all ofthose inconse idiosyncrasies okay so what we can do is we can just umstreamlinethis testumcohorts to people who actually have um aUnix machine either Mac orum Linux so that's you know that's thatkind of sets a bar so that we we don'thave we don't waste too much time tryingto help people I think I think I thinkDocker would be a solution Isaac's kind of our expert on Docker I I'm Isuspective deploys on Windows I don'tknow how easy it is to do developmentwhen you're constructing things in aDocker container Isaac I don't know ifyou'veum ventured in there be too much harderum the docker container is functionalalthough uh I don't know if it's likeproduction readyum doesn't have to be production readyfor thisthat's fair uh it's definitely like ready to like Tinker with at leastum like last time I ran it it ranuh although I have not run it in a whilesince I've been trying to do a bunch offacade stuff yeah so so maybe the thingthat we can get ready for you this weekAchmed isum uhuhDocker for Windowsokay and um the taskthe task examplesumand stubsand maybe something similar forAPI endpointsand perhaps you and I could have aconversationum maybe on this day next week where wewe go through some of that in a bit moredetailokay okay that's that's gonna be great okayum so I will um I will just put aI'll just put the same session on thecalendar on the chaos calendar for nextweekum and we we can catch up thenum if that if that works for youyeah I think um this time next week alsoworksum that's is um is it it's um it's um for450 here right now so I don't know whattime 10 50 hereso it'll be five o'clock there shortlyso this started at three o'clock yourtimeyeahI'll just um I'll go ahead andjust uh make this particularummeeting uh occur again next week at the exactsame timeforeignand I I have a dentist appointment at 1120 so I think we're gonna fall short ofgetting through our entire agenda mostsignificantly the augerinstall but I will umI'll make a separate recording of thatlater today so that so that I can refer you to thatand this recordingumare you in the chaos Slackyes yes I am so I will make a notein the chaos slack about where thisrecordingends upum I think Ruth has already then createdlike uh an introductoryum conversationbetween three of us so you can't justcontinue from there yeah I mean I'll probably uh I'll probably just share itin the general Channel though so thatothers have access to it the the augerchannel so there's another channel onthe chaos slack and uh I can share it inthat initial conversation as well I justwanted you to know I would also besharing it in the umin the in the auger in the auger slackum on the chaos channel so that othersare aware of what we talked about heresure all rightsounds goodyeah yeah that's great that's greatthank you very much well thank thank youAhmed uh nice to see you again meethopefully you got some stuff out of thisI think roof we've certainly learned abit and um we'll talk with you all againsoonall rightbye-bye um can you just uh add thatslag board over the meeting as well sothat we can get a reminder on slack for the meeting in the next week which isthere something special I have do I haveto invite the slackbot is that the dealuh I guess Roots was just mentioningthat to me that there is some thingsespecially to be done okayI'll I'll ask Elizabethumwhat do I have to dowith the slack bot um all right I'll check I'll take careof that yesright now right away from this portionlike of developing the worker and allwe'll go through it uh the next weekonly right yeah I mean I'll record uhinstalling auger um recording later today all right allrightall right talk to them and later thanksa lotyeah okay, Getting Started With Augur, November 14, 2022, CHAOSS, 01h1cqmbjpc385rrwqzdn7e21v.