How To Be An Effective Open-Source Project Participant (DNN Summit 2022)

Feb 09, 2022

SUMMARY

Let's face it, in today's open-source project climate, the feeling of having to be a GitHub expert is real! Not only that, it can be quite intimidating as a non-developer when interacting with dev gurus! So how do I effectively participate, even if I am not a developer? In this session, we will discuss common protocols for open-source collaboration with developers and non-developers alike. We will cover the basics of GitHub (and Git). We'll discuss non-code-based contributions and interaction. We'll sprinkle in some real-world, working exercises to give you actual hands-on experience. Finally, we'll round off the session with a few more complex scenarios you may run into from time to time. You'll walk away from this session with more confidence in becoming an effective open-source project participant!

0:03 okay well I'll go ahead and get started here it's right at 3 3 30 Eastern so I
0:09 believe that's the time we're supposed to start welcome uh to my session on How
0:14 to Be an Effective open source project participant and I'm looking forward to
0:22 this one this is actually a a bit of a a repeat of a session that I did at a
0:28 previous DN Summit and it went over so well I figured I would do it again and
0:34 try to help some people out with with things especially as it relates to uh
0:40 GitHub so for those of you that do not know me I Am David Poindexter also
0:45 affectionately known as Dean and Dave uh be sure to visit the Indian dave.com and my YouTube channel and please do
0:53 subscribe to the YouTube channel because I'm going to be doing a lot of content over the coming days weeks and months
0:59 ahead um I am the CEO of imaginative we are a creative of marketing and app
1:05 development firm located in the Charlotte North Carolina area I am the
1:10 strategy lead for DN leader in the DNN leadership team getting a little tongue-tied here own board of directors
1:17 for DNA and connect and co-president of the Southern Fried DNN
1:24 Meetup Group various ways in which you can connect with me or down at the bottom there as
1:30 well as with our company in visionado so what are we going to cover in this
1:36 session um we're going to talk a little bit about what open source is and why in the
1:42 world you should care and if you are like minty many that are
1:47 entering into this open source age that we're in
1:52 um at some point you're going to say but I don't get it you know what the heck is getting what is GitHub and what is all
1:58 this terminology mean and why is everybody so obsessed with it using it
2:04 and so forth we're going to go over a lot of that um but I'm going to try to get through
2:09 the slides as quickly as possible because I want to do some Hands-On things and really show a few people a
2:16 few people about kind of how to interact with GitHub a little bit more in a granular fashion and we're going to talk
2:22 a little bit about how you can contribute even if you're not a Dev because let's face it uh GitHub is here
2:30 to stay get is here to stay and you can participate in ways that aren't just
2:37 code but we're going to talk about some of those so let's talk a little bit about what
2:44 open source is and and why in the world you should care well open source is
2:50 commonly referred to as just free software well that's not always the case
2:55 right um open source is where the code is being shared and depending on the
3:02 licensing model that's been placed on that code it may be able to be freely used but a lot of times especially on a
3:11 larger project projects and so forth It's there's a lot of effort that goes
3:17 into these solutions that people make and so
3:24 sometimes the contributors of those or are creators of those Solutions can be
3:31 supported via some kind of structuring or sponsoring structure like GitHub
3:38 sponsors or patreon or something like that but I don't think we really need to
3:45 have that mentality of open sources just free well it is and some of it you can
3:51 use for free and even for commercial use but that's not really the heart behind
3:56 it so to speak so it's really about the source code being open for you to be
4:03 able to see it and work with it and interact with it um yeah so anyways that's just a little bit
4:10 of encouragement uh because we run in the disc quite a bit you know where people kind of treat it as if you're a
4:18 company making tons of money with the software and hey you need to fix the issue that I found well I mean it's open
4:25 source that means you can participate in that open source project you can
4:31 contribute to it you can help you with giving information about the issue you
4:36 know so there's just ways that we can interact with those that are maintaining
4:42 these projects you know in DNM platform being a huge one right
4:47 um anytime that you have an issue with DNM platform well long gone are the days that there's this Corporation you know
4:53 behind the whole thing and everything flows through a team of Engineers and all that well that's just not been the
4:59 case for a long time even though it's been open source for you know since the beginning it now truly is open source in
5:06 the sense that it's Community Driven and so forth so anytime that you have an issue just remember that these are
5:12 volunteers that are out there that are working hard and passion work for
5:18 something that they love and they care about and they want to support so anything that you can do to help make
5:24 their life easier either for you to contribute code or if that's not your
5:29 expertise you know at least giving them the information they need in order to be able to replicate an issue or something
5:36 like that so a little bit about open source we could talk all day just about that but
5:42 well where in the world does open source live
5:48 um we've gone through many iterations of Open Source platforms and you know that
5:55 allow developers to share code and so forth you may remember back in the day
6:01 you know DNN being on oh my gosh my brain just now had a lapse
6:08 um what was it um a lot as you're in this room what was that called uh
6:16 um yep I can't even remember but it was before GitHub days right and we we ultimately went to GitHub
6:23 um but I've got code projects stuck in my head but no uh it was something else
6:28 that's gonna bother me uh for quite some time so if anybody knows the answer to that one uh put it in there this year
6:34 DNN Jeopardy trivia question for this particular session
6:40 um code Plex that's it sorry just came came to my mind but there's been a bunch of
6:46 different kinds of um uh platforms out there to be able to share codon as well as to go and find
6:53 code and use it and get it and interact with it um and they have pros and cons to each
7:00 platform so GitHub has just kind of evolved as one of the more popular ones
7:05 that are used in the open source communities so we'll do a little bit of focusing on that but most likely you
7:13 have at some point hit a brick wall like uh yeah I
7:18 I see it but I don't know what in the world this is or why uh what's the way
7:24 that it is it just seems really confusing maybe you're coming maybe you are a
7:29 developer and you've come from a more traditional older Source control platform like
7:37 um something like visual Source safe or in later years you know TFS
7:44 um and get just seems to be so different
7:50 right than the way that that worked same Concepts you know of of source control
7:56 and versioning and things like that but just the flow of things may seem quite a
8:02 bit different and you find yourself up against a brick wall trying to wrap your head around how this works terminology
8:09 is different semantics are different and so forth and you you may find yourself pulling out your hair quite a bit and
8:17 throwing things around and wanting to drink more coffee so that you could try to understand a little even a little bit
8:24 more and ultimately you just I I just don't get it well I'm here to tell you don't
8:31 be afraid of the force um we're stuck with Git it's here to stay
8:38 and in particular you may hear these terms used
8:43 synonymously but they're not really the same so git is actually the system you know the the methodology the way of
8:52 doing things it's actually the underlying technology tool you know to to do all this Source control but GitHub
9:00 is just one implementation of a system that's built off of get principles and
9:06 get you know usage so not really the same thing but you're using git when
9:12 you're working with GitHub now github's done a fabulous job of
9:18 in the browser being able to make a lot of that a little bit easier from a user
9:25 experience standpoint and some of the things that you can do in more common
9:30 terminology you know in the in the browser like new issue or whatever
9:36 um things like that are or extra things that are kind of and kind of handle it in their experience but you may have
9:42 used like get lab or or and my dog is barking hold on just a second
9:49 I have to tell him to hush um he is excited because somebody is walking by with a dog
9:57 um what was I saying um yeah so some of their user experience is a little bit different where you may have gone to
10:03 bitbucket and it'd be similar but not exactly the same as GitHub all of these
10:08 are built off of git but they they have their own kind of uh opinions of how
10:15 users can interact via the browser and so forth so what are some of the ways that GitHub
10:22 has used this not just for source code because I you know we've all seen crazy code you
10:28 know living out there in some repository on GitHub and that's what we think of maybe when we think of GitHub
10:34 um but that's not really the only use uh for GitHub or git
10:40 a lot of people I think of an author that is writing a book and they want to
10:46 organize their pages of the book I've actually seen GitHub repos set up for
10:53 authors you know to to make their Open Source book you know in their writing be
10:58 more available or digestible in a source controlled fashion just thinking the benefits of that to having you know such
11:05 of the rich history of versioning and so forth of of their book it'd be a great
11:11 way for Publishers uh to to work with that I've seen people you know like
11:16 doing presentations like I'm doing right now making those available I want to get Hub repo or design work or processes
11:24 that you or your company leverage to to be able to get stuff done and you need a
11:31 place to store those in a easily consumable fashion either through private use within your within your
11:38 organization or in a public way where other people can contribute to those processes and involve those over time or
11:45 workflows that you may use or documentation I mean think about things like DNN docs well yeah it's code and
11:54 there is a build system and all that but it's documentation so I mean it could be literally just a bunch of Word documents
12:01 that are sitting out there or Pages document if you're on Mac OS so there's
12:07 a lot of use for git and GitHub
12:12 um that is not just code focused so you don't have to be a coding Guru in order to be able to leverage some of the
12:19 benefits of get and being able to version things and so forth like that
12:25 being able to hear the community's feedback on particular things or
12:33 resolve issues or plan out things we'll see a little bit later kind of how you
12:39 can leverage the projects feature to be able to plan out your projects or your
12:45 next version of things so why do developers love it so much
12:52 well it's kind of a love-hate relationship for a lot of developers especially at the beginning
12:58 but it is based on git and that is a known open source tool itself
13:05 very powerful and offers a lot that older Source Control Systems did not
13:12 offer so it it has become very popular because
13:17 of that and GitHub in particular has done a great job with their user experience in the browser like I
13:23 mentioned earlier so it's it's quite quite evolved and popular
13:29 it's a great way to share projects for the developers is a obviously a great
13:34 place to store code and you can do that in a public or a private fashion so it's
13:41 not just for open source it could be used for your closed Source projects as
13:48 well in private repos it retains all of the history every
13:53 little thing that you do in the repository is logged you know it's it's there in the history and you can get
13:59 back to any point in time with a bit of knowledge of git
14:05 it's a great way to collaborate with others being able to work with other developers
14:11 or designers or QA testers I mean just all sorts of ways in which you can use
14:17 it as an interaction tool and even a project management tool to really kind of plan things out
14:23 and of course us developers have a bit of ego from time to time so it's a great way to show
14:29 off our Mad Skills right so let's talk a little bit about the terminology of GitHub and some things
14:38 that you may see out here and may help you a little bit piece together some things so we've got a repository or
14:46 people refer to as a repo short for Repository it's really just a place that is
14:52 designated for a particular collection of files that's all there is to it nothing more
15:00 we've got code that lives in a repo right and each code change can be committed so
15:10 we we see the term commits branches are simply just there's a lot
15:17 more to this and I'm not going to go into a ton of detail here but there is a
15:23 wonderful video out there that Daniel velas actually referred me to is fear
15:28 not the Shah Sha and it for those of you are Geeks and
15:34 really like the details of how git really works um that is a wonderful video I'll see if
15:40 I can uh maybe if Daniel's still in this uh in this particular session he can
15:46 post the link to that video there that would be awesome um if not I'll try to remember it myself
15:52 um branches are really kind of think of those as like a a way to take a copy of
15:57 something that is in a certain State and put it over beside it and just name it
16:03 something different and you can make changes over here if you want to you can commit them back to the the main branch
16:10 so you can have as many branches as you want within get and it's really powerful and then we've got a concept of releases
16:17 where when you get to a certain state of the code or the files
16:23 I should have probably put files here because in some of those non-code examples I showed earlier it's really
16:28 just about the state of those files when you get to a certain State and you want to make a release then there's that
16:35 concept of making a release on GitHub as well there's the concept of issues and this
16:42 one can be a little bit misleading I know I was a little confused by this when I first started experiencing getting GitHub
16:50 um the concept of an issue is really just a way to document something that
16:57 you want to see work differently or maybe you want to have a conversation about it I know in the early days
17:05 issues were kind of where you had conversations too so let's just say you're trying to use a particular
17:11 solution from a GitHub repo and you just can't get it to work while
17:16 you think it should work or whatever and you just want to ask a question well you would create an issue even though it's
17:22 not really an issue it's just that you're having a challenge and you need some help some support or whatever
17:28 then you would post to create a new issue to be able to dialogue with other
17:34 people in that particular Community or the project maintainers to be able to to
17:40 learn and those issues can be closed so issues now are really used a little bit
17:46 more for literally like issues and there are other features out there and GitHub like discussion you'll see some repos
17:54 have a discussions Tab and that's a little bit more for just having kind of open discussions when you don't have a
18:00 specific issue that needs to be followed up with foreign
18:05 this is a big one pull requests what the heck are you guys talking about
18:11 when you talk about pull request well think of this me as a developer that wants to
18:17 contribute to a project that is living in GitHub well I have to have a local copy of that
18:24 code right in order to work with it so what the typical kind of way of doing
18:30 this is is and this is so mysterious for a lot of people but it's actually way more simple
18:36 than we think it is when we're first starting to think about it so let's take DNM platform for instance
18:43 well if I want to work with DNM platform on GitHub what I would do is I would go
18:49 out to the you know the GitHub repo for DNM platform and I would Fork that into my GitHub
18:56 account so then I've got two copies of that repo right and then I would have a copy locally
19:03 which would be my local repo so I would have three repos essentially
19:08 I would have my local I would have the main repo which is what we often name as the Upstream repo
19:16 and then I would have my origin repo which is the fork repo this on my
19:22 account and those that's kind of the simple um
19:27 first baby steps I guess of really understanding how the repos work but a pull request if I made it this is the
19:35 DNN platform repo and this is my fort repo and GitHub and then this is my local here
19:40 I would make changes to my local I would push that to my origin which is my fort repo
19:49 and then I would say it's almost like making a phone call up to the main repo and say hey I've got a branch over here
19:56 that I want you to consider for merging into your code base but it's over here on my little fort repo well I would make
20:04 a pull request from the Upstream repo to pull my changes from my origin into it
20:12 and that's really what a pull request is it's just any request to pull code from another Repository
20:18 that one's kind of a big one uh to to wrap your head around and then we got the concept of projects
20:25 and this is more of a project management Tool uh this this within GitHub some projects have these and some don't uh
20:32 choose to enable those um but we leverage this on DNM platform to track new issues that are coming in
20:39 and the state of those issues in general so if it's a ones that won this awaiting triage we
20:46 use a board on a project you know to be able to move those from a waiting triage to an enhancement or a feature or a bug
20:56 and we kind of categorize those and then we have a closed and different projects
21:01 use these were different repos I should say leverage projects in

RELATED VIDEOS

Southern Fried DNN: DNN Summit 2022 Recap + Community Project Highlights
Feb 17, 2022

This month, we'll be recapping DNN Summit 2022 and then we'll take some time to highlight a few exciting community projects. Trust us, they are worth knowing about and getting involved with!

So Much More To Consider (DNN Summit 2022)
Feb 10, 2022

When it comes to websites, powered by DNN of course, there is so much to consider. And that consideration goes way beyond the technical bits (though these are super important too). Do you perhaps "think like a dev"? Do you rely on "starter designs"? How is your "branding acumen"? Have you brushed up on "color theory"? Do you wear "the marketing hat"? Have you considered "accessibility"? Do things like "user experience", "CTAs", the "customer journey", and "conversations" come into the picture? Oh, and let's not forget about "SEO" and "SEM"! In this session, we'll touch on why ALL of these should at least be in the conversation. We'll share tactics and tips for "doing things right"!

Build a Mobile App Using DNN as the Backend (DNN Summit 2022)
Feb 09, 2022

In this session, we'll build a mobile app using DNN as the backend! This session will provide a foundation and open-source building blocks upon which you can use for more robust use cases.

DNN Summit 2022 - What To Expect
Dec 12, 2021

I speak with the Board of Directors for DNN Association about the upcoming DNN Summit 2022. We'll learn what this wonderful DNN Community conference is all about and why you should seriously consider attending.