<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Scarf</title>
    <description>The latest articles on DEV Community by Scarf (@scarf).</description>
    <link>https://dev.to/scarf</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F5614%2F493e4640-e179-4078-b961-03a4f8995e21.png</url>
      <title>DEV Community: Scarf</title>
      <link>https://dev.to/scarf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/scarf"/>
    <language>en</language>
    <item>
      <title>Alex Biehl: Open Sourcing a Tool to Generate Haskell Server Stubs</title>
      <dc:creator>Christina Gorton</dc:creator>
      <pubDate>Mon, 25 Jul 2022 14:37:04 +0000</pubDate>
      <link>https://dev.to/scarf/alex-biehl-open-sourcing-a-tool-to-generate-haskell-server-stubs-3a0c</link>
      <guid>https://dev.to/scarf/alex-biehl-open-sourcing-a-tool-to-generate-haskell-server-stubs-3a0c</guid>
      <description>&lt;p&gt;Scarf Sessions is a new stream where we have conversations with people shaping the landscape in open source and open source sustainability. This post will give a recap of the conversation I had with our guest Alex Biehl&lt;/p&gt;

&lt;p&gt;Alex is a software engineer at Scarf who recently open sourced a tool to generate Haskell server stubs called &lt;a href="https://github.com/scarf-sh/tie" rel="noopener noreferrer"&gt;Tie&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For the full interview please &lt;a href="https://youtu.be/-zfXh7a916E" rel="noopener noreferrer"&gt;see the video&lt;/a&gt; posted on our YouTube channel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stream Recap
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can you talk more about what programming languages the engineering team at Scarf uses?
&lt;/h3&gt;

&lt;p&gt;Alex: “We use a different mix of languages. Though there are two things that stand out for the main products, which are Haskell for the backend like data processing metrics, pipeline and all. And the other one is of course, JavaScript for the front-end, like the UI of the product.&lt;/p&gt;

&lt;p&gt;“Also one of the defining aspects of our infrastructure is that we use something called &lt;a href="https://github.com/NixOS/nix" rel="noopener noreferrer"&gt;Nix&lt;/a&gt; to assemble all the infrastructure bits. We use it to build out our binaries, build the containers from those binaries, help manage and distribute our artifacts for deployment.”&lt;/p&gt;

&lt;h3&gt;
  
  
  Can you describe the difference between Haskell and other programming languages?
&lt;/h3&gt;

&lt;p&gt;Alex: “Haskell is known as a functional programming language. One of the legends of Haskell is that if it compiles, it works okay. Which is, of course, not always true, but it's a good approximation for a lot of things.&lt;/p&gt;

&lt;p&gt;“And coming from that background our founder, Avi, decided that it would be a good foundation for a product.”&lt;/p&gt;

&lt;h3&gt;
  
  
  Did you work in open source before joining Scarf?
&lt;/h3&gt;

&lt;p&gt;Alex: “I've always been an active open source contributor. Most of the time in the Haskell ecosystem. I’ve been contributing to a lot of Haskell infrastructure as well.&lt;/p&gt;

&lt;p&gt;“I was a maintainer for &lt;a href="https://haskell-haddock.readthedocs.io/en/latest/" rel="noopener noreferrer"&gt;Haddock&lt;/a&gt;. It's the de facto standard documentation tooling for Haskell. And I also contributed to the core build system called &lt;a href="https://www.haskell.org/cabal/" rel="noopener noreferrer"&gt;Cabal&lt;/a&gt; and also contributed a few small patches to &lt;a href="https://www.haskell.org/ghc/" rel="noopener noreferrer"&gt;GHC&lt;/a&gt; itself, as well as, all the ecosystem around it."&lt;/p&gt;

&lt;p&gt;Christina: “I'm always interested in how people get started in open source.&lt;/p&gt;

&lt;p&gt;"Was it something that you were just using these things, so you decided to contribute to the project?&lt;/p&gt;

&lt;p&gt;“Or were you specifically like, “Hey, I want to do something with open source."&lt;/p&gt;

&lt;p&gt;“How did you get started?"&lt;/p&gt;

&lt;p&gt;Alex: “I think I'm kind of a pragmatist in that regard. I noticed something isn't working and now you have the chance to either, you know, build it yourself or piggyback off what's already there and improve it.&lt;/p&gt;

&lt;p&gt;“And the pragmatic choices of course, to not reinvent the wheel and improve what's there and iterate on that. And that's what brought me to open source and what brings me to contributing to open source even to date.“&lt;/p&gt;

&lt;h3&gt;
  
  
  Where did the idea for Tie come from?
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Scarf Redesign
&lt;/h4&gt;

&lt;p&gt;Alex: “At scarf we are in the process of revamping our UI for the product.&lt;br&gt;
And we thought it would be a good time for us to also not only revamp the user interface, but also revamp the underlying parts that serve those UIs.  Right now the API is written in a very ad hoc way.&lt;/p&gt;

&lt;p&gt;“We had a chance to revamp the API, we looked at what we had and analyzed all the shortcomings and disadvantages that we saw. And we found that defining your API in Haskell itself is  prone to the usual developer habits.&lt;/p&gt;

&lt;p&gt;“Something that developers do is build out patterns and mechanisms to type out lines of codes. They reduce duplication and they make things. They consolidate things to make it shorter, to make it more correct, to avoid repeating themselves.&lt;/p&gt;

&lt;p&gt;“It happens that the API itself gets less and less explicit because it's hidden behind all those structures that we build in order to easily write the API itself.&lt;/p&gt;

&lt;p&gt;“That made it very hard for us to actually find out what the API itself is. Like what is the actual route for this particular endpoint? You have to look it up and dig deep in order to find out. And another issue we found is we often ended up with something I call “scope creep”. Sometimes types that are meant for the public API contract of the API make it into the domain and business logic.&lt;/p&gt;

&lt;p&gt;“Which means that in the long term you are coupling your API contract, which you want to support for your customers, to the internal logic of your product. And every time you want to make a seemingly internal change to your logic you might accidentally change the public contract as well."&lt;/p&gt;

&lt;h4&gt;
  
  
  Developing Tie
&lt;/h4&gt;

&lt;p&gt;“This brought me to two realizations. First, we want an explicit human readable API contract, which we can share with our customers.&lt;br&gt;
Second, I wanted to settle it on co-generation. That means I don't want to type out these very boring interface types or contract types myself. I really want a tool to have it generated for me so that I never ever accidentally make a change in the Haskell code that would break the contract. With those goals in mind the most common choice today for these kinds of things is &lt;a href="https://www.openapis.org/" rel="noopener noreferrer"&gt;Open API&lt;/a&gt;. Open API denotes domain specific language to model web APIs.&lt;/p&gt;

&lt;p&gt;“Where Tie comes into play is that it understands Open API. And Tie takes the Open API format and generates Haskell code from it. It does this in such a way that we only have to implement the actual list for the specific routes and don't have to deal with all those serialization logics and peculiarities.“&lt;/p&gt;

&lt;h3&gt;
  
  
  What did you find hard or unexpected about open sourcing Tie?
&lt;/h3&gt;

&lt;p&gt;Alex: “One of the things that I fell really short on at first was writing good documentation. &lt;/p&gt;

&lt;p&gt;I hadn't even created a good example in the repository when I first open sourced the project. It didn’t have a “How to use” section although we were already using it ourselves in production. &lt;/p&gt;

&lt;p&gt;“It was born as a weekend project after two or three days of work and we were putting it into production already after that weekend. So I quickly had other support issues I had to work on before I had time for documentation. &lt;/p&gt;

&lt;p&gt;Christina: “This is why bigger teams have dedicated people for documentation, I totally understand. And to Alex's credit he very quickly messaged me because I have been an open source community manager in the past and he asked me how do I make a good readme? &lt;/p&gt;

&lt;p&gt;“I think that's a really good point though. Often maintainers or someone who really wants to open source a tool they were using and it was helpful for them don't have time for everything else, like the documentation.&lt;br&gt;
‍&lt;em&gt;Do you have any advice for anyone putting anything out?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Alex: &lt;strong&gt;“Don’t let the perfect be the enemy of good."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"You should add documentation and all the parts that got lost on the initial phase of the project. But you know, what's more important I think is, getting initial feedback on the project itself.”&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s in the future for Tie?
&lt;/h3&gt;

&lt;p&gt;Alex: “Tie is not finished. It doesn't support all of Open API’s setup. The standard is vast so this is the call for contribution right here. &lt;/p&gt;

&lt;p&gt;“Help us improve it, file issues. We can definitely help and guide any changes and improvements.”&lt;/p&gt;

&lt;h3&gt;
  
  
  What else are you working on?
&lt;/h3&gt;

&lt;p&gt;Alex: My pet peeve is proper co-generation for contracts for external systems, for example databases. People like to use ORMs and generators.”&lt;/p&gt;

&lt;p&gt;Christina: “Can you explain what ORMs are?”&lt;/p&gt;

&lt;p&gt;Alex: “Object relational mappings method. Like an active record in Ruby, Django, etc. And I want a tool that takes your migration folder and generates for you the types very similar to what Tie does. I want the tool to generate types that reflect the records, the structure of the tables in the database then also allows you to basically ingest SQL.&lt;/p&gt;

&lt;p&gt;And generate small records around that SQL which are typed. So that you can use your SQL to write theories, to define tables, to alter tables and so on, but still have the good old type system to help so that you don't mix up your types”&lt;/p&gt;

&lt;p&gt;For more information on Tie please visit &lt;a href="https://github.com/scarf-sh/tie" rel="noopener noreferrer"&gt;our repository&lt;/a&gt; and consider contributing to the project to help improve it.&lt;/p&gt;

&lt;p&gt;Are you helping to shape the landscape in open source? Interested in joining us on a Scarf Sessions Stream? Email Christina at &lt;a href="mailto:christina@scarf.sh"&gt;christina@scarf.sh&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Are you helping to shape the landscape in open source? Interested in joining us on a Scarf Sessions Stream? Email Christina at &lt;a href="mailto:christina@scarf.sh"&gt;christina@scarf.sh&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To learn more about Scarf:&lt;br&gt;
&lt;a href="https://about.scarf.sh/" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To follow Alex:&lt;br&gt;
&lt;a href="https://twitter.com/alexbiehl_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/alexbiehl" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To follow Christina:&lt;br&gt;
&lt;a href="https://twitter.com/coffeecraftcode" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>haskell</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Tanner Linsley: Building Sustainable Open Source Projects</title>
      <dc:creator>Christina Gorton</dc:creator>
      <pubDate>Thu, 21 Jul 2022 14:00:26 +0000</pubDate>
      <link>https://dev.to/scarf/tanner-linsley-building-sustainable-open-source-projects-5cm0</link>
      <guid>https://dev.to/scarf/tanner-linsley-building-sustainable-open-source-projects-5cm0</guid>
      <description>&lt;p&gt;Scarf Sessions is a new stream where we have conversations with people shaping the landscape in open source and open source sustainability. This post will give a recap of the conversation Scarf CEO, Avi Press and I had with our guest Tanner Linsley.&lt;/p&gt;

&lt;p&gt;Tanner is the Co-founder &amp;amp; VP of UI/UX at Nozzle. He is also the creator and maintainer of the open source projects, &lt;a href="https://tanstack.com/" rel="noopener noreferrer"&gt;TanStack&lt;/a&gt;.  He has been active in open source for over 5 years contributing to the TypeScript, JavaScript, and React communities. He joined us to explain how he got started in open source and how he has made working in open source sustainable.&lt;/p&gt;

&lt;p&gt;For the full interview please &lt;a href="https://www.youtube.com/watch?v=kgpAe4zoFUg" rel="noopener noreferrer"&gt;see the video&lt;/a&gt; posted on our YouTube channel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stream Recap
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What would you attribute to the growth of TanStack?
&lt;/h3&gt;

&lt;p&gt;Tanner: "React Table and React query. I built React table and people started to like it, which was my initial entry into open source. React Query was a bigger push into a lot more users. It was a very general purpose library for React. So it drew a very large audience. I thought it was pretty great. Apparently other people did too."&lt;/p&gt;

&lt;h3&gt;
  
  
  How did you promote your open source projects?
&lt;/h3&gt;

&lt;p&gt;Tanner mentioned that he literally just put his work out on Twitter when he was ready to make it open source.&lt;br&gt;
Tanner: “I published it at 10:00 PM. I got on Twitter and I said, Hey, everybody, check this out. You know? That's kind of how I've done a lot of my releases too. I like doing it that way. Like I don't need to make too big of a fuss over it.”&lt;/p&gt;

&lt;h3&gt;
  
  
  What is React Location?
&lt;/h3&gt;

&lt;p&gt;Tanner: “Location is an alternative router for React that is not React Router, I guess, because there's not a lot of them out there. Remix came out and they had a lot of great asynchronous routing features in Remix. I wanted to bring those into a routing experience and I needed more control over search params to the extent that no other router I've seen has.&lt;/p&gt;

&lt;p&gt;"So I built this custom router from the ground up to have really good search param support and control over URLs.”&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Started in Open Source
&lt;/h3&gt;

&lt;p&gt;Tanner expressed that he generally creates projects that he needs for his own work and then open sources them for others to use.&lt;/p&gt;

&lt;p&gt;Avi: “That makes a lot of sense. I very much resonate with the experience of building tools that you need for yourself or tools that your company needs as a way to build things that are valuable to other people in general. If it's useful to you, it might be useful to others too and that is exactly how I got my first projects that had any kind of traction beyond just me using them. They were tools that I wanted to build as well. “&lt;/p&gt;

&lt;p&gt;Avi mentioned that people ask him how to come up with ideas for an open source project or product and he tells them to build something they find useful first.&lt;/p&gt;

&lt;p&gt;Tanner: “I think that's kind of the wrong way to approach open source anyway. I’d rather solve a real problem. And do something that's actually gonna move the needle for users or a product then be like, “oh,  I wonder what I could build in open source.&lt;/p&gt;

&lt;p&gt;"I feel like you kind of come up with half baked ideas and you're probably just innovating to innovate. I don't think there's as much drive and inspiration when you do that.“&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you have any advice for people looking to open source their projects?
&lt;/h3&gt;

&lt;p&gt;Tanner: “I can only give advice on what works for me and the best way that I can do it is you have to remove yourself from your code. You are not your code&lt;/p&gt;

&lt;p&gt;“If people look at your code and think it's crappy or judge it, honestly you should be just as judgey of your own code as they are. But it's not you, it just represents, you know, an attempt at solving a problem and it's always an attempt, right?&lt;/p&gt;

&lt;p&gt;“Things are going to get better. I publish things to be open source because I want them to get better. And I know that by pushing them into the open source ecosystem, I get a lot of eyeballs on it. And in a way, outsource a lot of the difficult tasks of problem solving to those who care about it as much as I do.“&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Nothing is ever going to be perfect enough to release into the open source world as a true product. It's not gonna be ready until you release it and get other people interested in it to iterate on it with you. It's a chicken and egg problem, but you definitely have to put forth the effort, get rid of your ego and, and just kinda say here it is, you know?“ - Tanner Linsley&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Avi: “Yeah. I very much agree with that. And I think that translates to not just open source. For anything that you're putting out there in the world,  the feedback is the good thing. And the sooner you get the thing out there, the sooner you get that feedback and the sooner you can build something actually great.“&lt;/p&gt;

&lt;h3&gt;
  
  
  Why are you trying to build a sustainable open source project in addition to your start-up?
&lt;/h3&gt;

&lt;p&gt;Tanner: “I don't really feel like I'm trying to build a business around my open source stuff. What I am trying to build though is a sustainable model for those problems and solutions. And no one ever said that money didn't help solve sustainability, right? You get money in the mix, it just helps a lot of things.&lt;/p&gt;

&lt;p&gt;"Right now I am able to sponsor a lot of devs that help me out. I definitely want those projects to live on and that's a great way to do it, because I'm just one person.&lt;/p&gt;

&lt;p&gt;"So there's some really bright minds that have kind of organically joined TansStack to carry things forward. ‍&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/TkDodo" rel="noopener noreferrer"&gt;Dominik Dorfmeister&lt;/a&gt; is one who basically just takes care of react query these days. The next version of React Query that's coming out very soon is basically his brain child.“&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I want to see that happen for more projects even if they're not mine. I want TanStack to be like an open source home, if you will, for great projects where they can come and actually survive and get taken care of.“ - Tanner Linsley&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  You have been fortunate to have some great sponsors. What have you done to encourage sponsorship?
&lt;/h3&gt;

&lt;p&gt;Tanner: “It's going to sound really simple, but I think companies really like to be seen. People like to be seen for their contributions and I don't know if you've seen my little sponsor bubble pack that I have on tanstack.com but I think it's really cool and I think my sponsors think it's really cool too.&lt;/p&gt;

&lt;p&gt;"The bigger your bubble is, the more you're helping out. And in a way, I've tried to sell that almost as like a partnership real estate space.&lt;/p&gt;

&lt;p&gt;"You can change your image and you can tell me where you want it to link to and point to. And it's not just on the GitHub repo, but it's on my website. It's on every project page. It's very prominent. It has been a great way to let people feel like they are being seen for their sponsorships.”&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flz2x2lgw4kj0q685eiot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flz2x2lgw4kj0q685eiot.png" alt="TanStack OSS sponsor bubble graph" width="690" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you handle burnout as a maintainer? Do you have advice for other maintainers?
&lt;/h3&gt;

&lt;p&gt;Tanner: “When I feel like I am burning out I go work on my startup instead. I just ship something for my product. We have real customers at Nozzle so shipping something new there makes you feel really good. You have to find a balance with your hobbies. I think you can burn out on any hobby and open source is just like a hobby.”&lt;/p&gt;

&lt;p&gt;For more information on Tanner Linsley and his open source projects be sure to visit &lt;a href="https://tanstack.com/" rel="noopener noreferrer"&gt;tanstack.com&lt;/a&gt;. If any of his projects have helped you in the past, consider &lt;a href="https://github.com/sponsors/tannerlinsley" rel="noopener noreferrer"&gt;becoming a sponsor&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>community</category>
      <category>react</category>
    </item>
    <item>
      <title>Stefano Maffulli: An Exploration on Standards for Open Source Packaging and Distribution</title>
      <dc:creator>Christina Gorton</dc:creator>
      <pubDate>Wed, 20 Jul 2022 19:41:19 +0000</pubDate>
      <link>https://dev.to/scarf/stefano-maffulli-an-exploration-on-standards-for-open-source-packaging-and-distribution-2446</link>
      <guid>https://dev.to/scarf/stefano-maffulli-an-exploration-on-standards-for-open-source-packaging-and-distribution-2446</guid>
      <description>&lt;p&gt;Scarf Sessions is a new stream where we have conversations with people shaping the landscape in open source and open source sustainability. This post will give a recap of the conversation Scarf CEO, Avi Press and I had with our guest Stefano Maffulli. &lt;/p&gt;

&lt;p&gt;Stefano is the Executive Director of the Open Source Initiative(OSI) and a long time advocate of open source. He joined us to discuss standards that should exist around open source packaging and distribution. He also talked more in depth about what the OSI is currently up too. &lt;/p&gt;

&lt;p&gt;For the full interview please see the video posted on our &lt;a href="https://youtu.be/fq5GeA_AlJc" rel="noopener noreferrer"&gt;YouTube channel&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stream Recap
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How or why did Avi and Stefano first connect?
&lt;/h3&gt;

&lt;p&gt;Stefano reached out to Avi after reading the NewStack article “&lt;a href="https://thenewstack.io/where-does-open-source-fit-into-russias-war-with-ukraine/" rel="noopener noreferrer"&gt;Where Does Open Source Fit into Russia’s War with Ukraine?&lt;/a&gt;”. &lt;/p&gt;

&lt;p&gt;The article quoted Avi, who talked about how Scarf was able to leverage its distribution data to uncover who was downloading and using our packages. Scarf noticed the Russian government was downloading some of its packages and moved to block the traffic.&lt;br&gt;
“Scarf will be blocking all package and container downloads originating from Russian Government sources until further notice.”&lt;/p&gt;

&lt;p&gt;Stefano was excited to see a tool that maintainers could leverage and feel empowered to stop bad actors using their software.&lt;/p&gt;

&lt;p&gt;Stefano: "As maintainer of a project or as a developer of some open source software, you have no ways of limiting the nasty usage of your software. It feels like you have no way to empower, you know, using your powers to say, look, I don't want my software to be used for nefarious purposes.&lt;/p&gt;

&lt;p&gt;"And, that's why, you know, while we were having these conversations about whether  the open source movement can have a say to help populations that are being attacked by an oppressor. That's how you and I met."&lt;/p&gt;

&lt;h3&gt;
  
  
  What can open source developers do about bad actors?
&lt;/h3&gt;

&lt;p&gt;Both Avi and Stefano agreed this was a complicated topic. What kind of powers do maintainers have?&lt;/p&gt;

&lt;p&gt;Open source software is pervasive but what tools do maintainers have to stop bad actors?&lt;/p&gt;

&lt;p&gt;Stefano: "We feel like we must use the tools that we know how to use, which is our licenses and, copyright and contract law."&lt;/p&gt;

&lt;p&gt;Stefano also mentioned that the current tools developers rely on are not powerful enough because for example bad actors are not going to obey the law.&lt;/p&gt;

&lt;p&gt;Stefano: "On one hand, you enable dissidents with strong encryption. Yyou enable free speech.&lt;br&gt;
On the other hand, you also empower terrorist organization to go, you know, behind the surveillance. So I think a lot of the conversations that I hear about the, role of developers in civil activism is relying on tools that are not really powerful enough in my opinion, like contract law or copyright."&lt;/p&gt;

&lt;p&gt;However distribution data is another tool maintainers could use.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You don’t have to do business with people who you don’t politically or socially agree with. And distribution seems to be one of those areas where we actually can give open source projects and maintainers a bit more leverage over their own work.”- Avi Press&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maintainers can also be creative with how they block the usage of their software. Many maintainers and open source communities stop bad actors by refusing to provide support.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Open source is about collaboration but you can pick and choose who you collaborate with.” - Stefano Maffulli&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  How do you see distribution playing a role in any facet of open source?
&lt;/h3&gt;

&lt;p&gt;Avi believes distribution plays a role in every facet of open source.&lt;/p&gt;

&lt;p&gt;Avi: "Yeah, I think that distribution plays a role in pretty much every one of these different sections when it comes to things like security. How do we respond to CVEs when we find them? Knowing what organizations rely on a given vulnerable package can make it a lot easier to you know, to do damage control and tell people that they need to upgrade proactively."&lt;/p&gt;

&lt;p&gt;"I think when we talk about, “how do we make sure that open source developers are building financially sustainable projects or secure projects?” It really comes down to having the distribution data. And having observability into that can really enable a lot of these opportunities.&lt;/p&gt;

&lt;p&gt;"I think distribution touches just about every aspect of this. And we're really just starting to scratch the surface on kind of the various ways, which this can be powerful. And I think the same thing for all the political activism aspects that we were talking about. This just gives you another tool in the tool chain that you can use to, be creative as was said earlier."&lt;/p&gt;

&lt;h3&gt;
  
  
  What kind of standards, if any, should exist for open source packaging and open source distribution?
&lt;/h3&gt;

&lt;p&gt;Stefano reiterated that the OSI are the stewards of the open source definition. They don’t write it but  maintain it for the community. He believes more conversations in terms of the development of standards for distribution should be encouraged amongst stakeholders.&lt;/p&gt;

&lt;p&gt;Avi made the point that these conversations are important. For example, many package registries do not require two factor authentication. This means a single person, who has the power to push a new package version to millions of devices overnight, could easily have their password leaked. He reiterated that it is vital for the OSS community to have best practices and standards around these kinds of situations.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the latest problems or questions when it comes to licensing, as it pertains to the OSI?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;“The one thing that has always been fascinating to me is the impact of new technologies on the open source definition.” - Stefano Maffulli&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The OSI is starting to investigate the impact of artificial intelligence on open source. Stefano talks about how AI is a weird blend of software and data that blurs the line between what users own and no longer own when sharing their content.&lt;/p&gt;

&lt;p&gt;Stefano proposes questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What kind of licenses should be on top of an application that uses AI?&lt;/li&gt;
&lt;li&gt;What is the right of the user and the right of the developers?
He reiterates that changes to technology always bring new challenges to existing standards and definitions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What do you think the next 20 years of open source looks like?
&lt;/h3&gt;

&lt;p&gt;Stefano: “Our role in the next 20 years is to continue educating and advocating the benefits of open source and to continue to build bridges so that these open source communities can continue to evolve and thrive around new challenges.”&lt;/p&gt;

&lt;p&gt;Avi agreed collaboration within open source will help us to continue developing processes and systems that keep open source sustainable and secure.&lt;/p&gt;

&lt;p&gt;He mentioned that Scarf is now a sponsor of the OSI.&lt;/p&gt;

&lt;p&gt;To that end, we encourage others to consider becoming a &lt;a href="https://opensource.org/civicrm/contribute/transact?reset=1&amp;amp;id=7" rel="noopener noreferrer"&gt;sponsor or donating&lt;/a&gt; as well. Together we can all work to advocate the benefits of open source for the next 20 years and beyond.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>community</category>
    </item>
    <item>
      <title>Encourage Community with a Good ReadMe</title>
      <dc:creator>Christina Gorton</dc:creator>
      <pubDate>Thu, 02 Jun 2022 16:28:53 +0000</pubDate>
      <link>https://dev.to/scarf/encourage-community-with-a-good-readme-ham</link>
      <guid>https://dev.to/scarf/encourage-community-with-a-good-readme-ham</guid>
      <description>&lt;p&gt;Community is important for the health of an open source project. During my time as an open source community manager and developer advocate, I have seen how a project’s ReadMe can help with discoverability and encourage community contributions when they are well written. I have also seen how projects can turn away users when they don’t take the time to create a good ReadMe.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes a Good ReadMe?
&lt;/h2&gt;

&lt;p&gt;When you are looking to promote your open source project and encourage developers to use it there are a few things your ReadMe could include.&lt;/p&gt;

&lt;h3&gt;
  
  
  Project Name and Description
&lt;/h3&gt;

&lt;p&gt;First, a ReadMe should be succinct. More detailed documentation about your product or project can be moved to a separate page or website. A few things you can add at the beginning of your ReadMe are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product name and logo if available&lt;/li&gt;
&lt;li&gt;A short description that can include:

&lt;ul&gt;
&lt;li&gt;What your application does,&lt;/li&gt;
&lt;li&gt;Why you used the technologies you used&lt;/li&gt;
&lt;li&gt;Some of the challenges you faced and features you hope to implement in the future.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Examples of project’s that do this well are:&lt;br&gt;
&lt;a href="https://github.com/deepset-ai/haystack" rel="noopener noreferrer"&gt;Haystack&lt;/a&gt; by Deepset AI&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92chtws00c3870kzare2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92chtws00c3870kzare2.png" alt="Haystack logo and project description" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/jina-ai/jina#readme" rel="noopener noreferrer"&gt;Jina&lt;/a&gt; by Jina AI&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbypzh392tav7cdk7f0br.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbypzh392tav7cdk7f0br.png" alt="Jina's logo and project description" width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Table of Contents
&lt;/h3&gt;

&lt;p&gt;If your ReadMe is long or contains several sections, a Table of Contents(TOC) is helpful.&lt;/p&gt;

&lt;p&gt;There are several tools you can use to create a TOC in your GitHub ReadMe. &lt;/p&gt;

&lt;p&gt;First, you can manually generate a TOC with Markdown. You can follow the markdown in this &lt;a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet" rel="noopener noreferrer"&gt;cheatsheet&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;To automatically generate a TOC, you can use an online tool like the &lt;a href="https://ecotrust-canada.github.io/markdown-toc/" rel="noopener noreferrer"&gt;GitHub Wiki TOC generator&lt;/a&gt;. I used this tool to create the TOC in Forem’s &lt;a href="https://github.com/forem/selfhost" rel="noopener noreferrer"&gt;Selfhost&lt;/a&gt; project when I was a developer advocate there. &lt;/p&gt;

&lt;p&gt;Their open source project, &lt;a href="https://github.com/forem/forem#table-of-contents" rel="noopener noreferrer"&gt;Forem&lt;/a&gt;, is another good example of a project that uses a TOC to help their community navigate the many sections of their ReadMe.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyknf6qcj11wmnary1ty4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyknf6qcj11wmnary1ty4.png" alt="Forem's repository table of contents" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation Guide
&lt;/h3&gt;

&lt;p&gt;As mentioned previously, in-depth documentation should be added to a separate page, but most users appreciate a "Quick Start" or installation guide, so they can test the project quickly. &lt;br&gt;
You will want to provide a quick step-by-step description of how to set up and run the development environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fluent/fluent-bit" rel="noopener noreferrer"&gt;Fluent-bit&lt;/a&gt; is on example of a project that has a quick start section and links out to more detailed build and install instructions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhrsf4szrmwozt3xjbvbn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhrsf4szrmwozt3xjbvbn.png" alt="Fluent-bit's quick start guide" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/grouparoo/grouparoo#running-a-grouparoo-application" rel="noopener noreferrer"&gt;Grouparoo&lt;/a&gt; is another good example of including a quick reference to running their application, but also linking out to a fuller version. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5g16rosfav7maogfgk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5g16rosfav7maogfgk6.png" alt="Grouparoo's installation guide to run their application" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage Examples
&lt;/h3&gt;

&lt;p&gt;Usage examples help your community visualize how your project can be implemented and better explains your project’s use cases. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kestra-io/kestra#demo" rel="noopener noreferrer"&gt;Kestra&lt;/a&gt; includes a demo app users can play within their ReadMe.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fem4s6wfn36alpdlomtyk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fem4s6wfn36alpdlomtyk.png" alt="Kestra's demo app available at https://demo.kestra.io/ui/" width="693" height="761"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/httpie/httpie#examples" rel="noopener noreferrer"&gt;Httpie&lt;/a&gt; includes several different examples of their HTTP client, including a GIF to help visualize.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tpkea68hncc9yoqp6xm.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tpkea68hncc9yoqp6xm.gif" alt="Httpie example animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributor Guide
&lt;/h3&gt;

&lt;p&gt;A contributor guide will encourage your community to participate in the health and maintenance of your project. &lt;/p&gt;

&lt;p&gt;A contributor guide is useful for both maintainers and contributors. Guidelines support good pull-requests and issues and encourages good communication between contributors and maintainers, which saves everyone a lot of time and hassle.&lt;/p&gt;

&lt;h3&gt;
  
  
  Add a License
&lt;/h3&gt;

&lt;p&gt;An open source license makes it easier for other people to contribute to your project. Depending on the license, it will also encourage or discourage the free use and distribution of your project. A public project is not free to use, distribute, modify, or contribute back to by default. You need to add a license to explicitly give others the right to do so. &lt;/p&gt;

&lt;p&gt;For more information on open source licensing, see the following resources.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository" rel="noopener noreferrer"&gt;Licensing a repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opensource.guide/legal/" rel="noopener noreferrer"&gt;The Legal Side of Open Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The Linux Foundation: &lt;a href="https://training.linuxfoundation.org/training/open-source-licensing-basics-for-software-developers/" rel="noopener noreferrer"&gt;Open Source Licensing Basics for Software Developers (LFC191)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Nice to Haves
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Credit Authors or Contributors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In addition to a contributor guide, a section giving credit to the authors of the project and/or highlighting project contributors shows your appreciation for your community by centering the work they have done.&lt;/p&gt;

&lt;p&gt;One example of a project that highlights their contributors with a “Contributors” section is Plausible. They use a tool like &lt;a href="https://contrib.rocks/preview" rel="noopener noreferrer"&gt;contrib.rocks&lt;/a&gt; or &lt;a href="https://remarkablemark.org/blog/2019/10/17/github-contributors-readme/" rel="noopener noreferrer"&gt;Open Collective&lt;/a&gt; to generate a contributors list and display an image on their ReadMe.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4omk4g23sdh6j0edacb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4omk4g23sdh6j0edacb.png" alt="Plausible's contributor section with contributor images displayed." width="800" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Things to Check
&lt;/h3&gt;

&lt;p&gt;If the project will be open to the public, you should check the &lt;code&gt;Insights tab&lt;/code&gt; in your repository to view the Community Standards. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93cujiza9kp18r1t70qv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93cujiza9kp18r1t70qv.png" alt="Github's Insights tab and community standards" width="636" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This tab provides a checklist you can follow to your community the best experience with your project. Try to include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors" rel="noopener noreferrer"&gt;A contributing guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-code-of-conduct-to-your-project" rel="noopener noreferrer"&gt;A code of conduct&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository" rel="noopener noreferrer"&gt;Issue templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository" rel="noopener noreferrer"&gt;PR Templates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maintaining an open source project is both exciting and exhausting. A ReadMe isn’t always at the top of mind when a developer or team open sources their code. Yet, taking the time to craft a good ReadMe encourages community and the health of your project. It will also save you time in the future by answering users questions from the start. Not everything in this list is necessary for a ReadMe, but even the addition of a few of these items will make an impact on your project.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>github</category>
    </item>
    <item>
      <title>A Different Approach to Measuring Open Source Community Health</title>
      <dc:creator>Christina Gorton</dc:creator>
      <pubDate>Tue, 31 May 2022 15:15:13 +0000</pubDate>
      <link>https://dev.to/scarf/a-different-approach-to-measuring-open-source-community-health-4n8m</link>
      <guid>https://dev.to/scarf/a-different-approach-to-measuring-open-source-community-health-4n8m</guid>
      <description>&lt;h2&gt;
  
  
  What is Community Health?
&lt;/h2&gt;

&lt;p&gt;Community is important to the success of open source software. The health of a community can be measured in different ways depending on the stakeholders involved. To understand and grow a community, project founders and maintainers need visibility into various technical, social, and even financial metrics. These metrics are important because they can help projects form data driven decisions. *&lt;em&gt;But what metrics should we be using? *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This post is inspired by several discussions I have seen around the failings of current open source metrics and the tools used to measure them. This post will discuss what metrics we currently use and what I believe we should be using instead. &lt;/p&gt;

&lt;h2&gt;
  
  
  Current Metrics
&lt;/h2&gt;

&lt;p&gt;On LinkedIn’s publishing platform Pulse, William Tracz wrote about &lt;a href="https://www.linkedin.com/pulse/open-source-vanity-metrics-william-tracz/" rel="noopener noreferrer"&gt;Open Source vanity metrics&lt;/a&gt; and the problem with using them to measure a project's success. Tracz lamented they could not currently see a better way to gather valuable data about open source projects. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are these current metrics?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Like Tracz mentions, many of the metrics open source maintainers and contributors rely on are considered “vanity metrics”. This term does not mean these metrics are not useful but they often do not give a full picture of a communities health. &lt;/p&gt;

&lt;p&gt;Examples of vanity metrics in open source are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Number of GitHub stars&lt;/li&gt;
&lt;li&gt;Number of active commits&lt;/li&gt;
&lt;li&gt;Number of new and closed issues&lt;/li&gt;
&lt;li&gt;Releases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and more.&lt;/p&gt;

&lt;p&gt;Often these are metrics founders and maintainers care about as they provide a way to quickly show “success” but may not actually help when it comes to important business outcomes and decisions. &lt;/p&gt;

&lt;h2&gt;
  
  
  Tools You Can Use to See Metrics
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Orbit
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://orbit.love/" rel="noopener noreferrer"&gt;Orbit&lt;/a&gt; is a tool you can integrate with GitHub to see metics like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull request opened&lt;/li&gt;
&lt;li&gt;Pull request merged&lt;/li&gt;
&lt;li&gt;Issue opened&lt;/li&gt;
&lt;li&gt;Issue comment created&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and more. &lt;/p&gt;

&lt;p&gt;As an open source community manager I used Orbit to quickly track new comments from contributors and maintainers so I could respond in a timely manner. I also used it to see when community members were no longer active. This helped me reach out and get feedback.&lt;/p&gt;

&lt;h3&gt;
  
  
  CHAOSS Metrics
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://chaoss.community/metrics/" rel="noopener noreferrer"&gt;CHAOSS&lt;/a&gt; is a Linux Foundation project focused on creating analytics and metrics to help define community health. &lt;/p&gt;

&lt;h3&gt;
  
  
  Common Room
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.commonroom.io/" rel="noopener noreferrer"&gt;Common Room&lt;/a&gt; is a growth platform that focuses on a business’ community. The platform helps companies connect their community engagement, product usage, and customer data through the use of artificial intelligence. &lt;/p&gt;

&lt;h3&gt;
  
  
  Bitergia
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://bitergia.com/" rel="noopener noreferrer"&gt;Bitergia&lt;/a&gt; is an analytics tool for software development teams, open source program offices, and InnerSource programs. Open source projects can use this tool to improve decision making and reporting by analyzing software development community, activity, and performance of open source projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Merico
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.merico.dev/" rel="noopener noreferrer"&gt;Merico&lt;/a&gt; provides tools to help engineering teams understand and optimize their productivity and code quality. &lt;/p&gt;

&lt;h2&gt;
  
  
  What Metrics Should We Use?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“Tracking different types of metrics is essential for free and open source communities. Metrics give project insights into specific efforts and help get a feel of the community’s general perception. For that, tools that can pull data from various sources and develop a visualization of this data will help projects make informed decisions.”&lt;br&gt;
&lt;small&gt;Linux.com Editorial Staff, &lt;a href="https://www.linux.com/news/measuring-the-health-of-open-source-communities/" rel="noopener noreferrer"&gt;Measuring the Health of Open Source Communities&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the article quoted above and in William Tracz’s article the need for a tool that can pull more valuable data is apparent. But what data should projects be looking at and what tool could they use?&lt;/p&gt;

&lt;h3&gt;
  
  
  Beyond Vanity Metrics
&lt;/h3&gt;

&lt;p&gt;What if you could see a project’s impact, identify potential customers, and understand/showcase growth without sacrificing your end-user’s privacy? &lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.scarf.sh/gateway/" rel="noopener noreferrer"&gt;Scarf Gateway&lt;/a&gt; helps you understand how users are interacting with your open-source project at every step of their journey&lt;/p&gt;

&lt;p&gt;Instead of answering questions like “how many followers do we have”, Scarf’s data digs deeper in to a project’s community health and answers questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;How many new companies tried our OSS this month?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;How many unique users did our OSS have this month compared to last month?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Was the spike in downloads we saw last week genuine growth, or a thrashing CI pipeline from an existing user?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Should I actually spend the time to fix the bug for that one Windows user?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We can also have visibility into how OSS software is distributed.&lt;br&gt;
Instead of wondering who is using our software, Scarf’s data answers questions like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;What percent of our user base has adopted our latest patch?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;What cloud providers are the most popular with our users?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scarf can also help uncover community metrics like your projects discoverability, usage, churn, and commercial reliance. Community Managers can use this data to proactively connect with users and grow a healthy and vibrant OSS community.&lt;/p&gt;

&lt;p&gt;This data compliments the metrics you can get from tools like Orbit and answers questions like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;What is the geographical breakdown of our user-base?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;What percentage of our user-base is corporate usage vs hobby usage?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;What time zones should we cater to with our online event planning?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a project’s documentation it can answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;What percent of our user-base is on Windows vs Linux vs Mac?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Which section of our docs are users finding most confusing?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A New Way
&lt;/h2&gt;

&lt;p&gt;This type of rich usage data moves beyond the typical vanity metrics the open source community has typically relied on. While those metrics can tell you a lot about a project, they do not give the full picture of a community's health. &lt;/p&gt;

&lt;p&gt;With the addition of tools like Scarf Gateway, maintainers now have the power to make more informed decisions. When maintainers have hard data around &lt;strong&gt;who, where, and why&lt;/strong&gt; companies and individuals are using their software they can better prioritize features, patches, releases and more. &lt;/p&gt;

</description>
      <category>opensource</category>
    </item>
    <item>
      <title>Python Wheels vs Eggs (And How Data-Driven Decisions Must Become The Norm in Open-Source)</title>
      <dc:creator>Avi Press</dc:creator>
      <pubDate>Tue, 10 May 2022 16:10:21 +0000</pubDate>
      <link>https://dev.to/scarf/python-wheels-vs-eggs-and-how-data-driven-decisions-must-become-the-norm-in-open-source-2ipn</link>
      <guid>https://dev.to/scarf/python-wheels-vs-eggs-and-how-data-driven-decisions-must-become-the-norm-in-open-source-2ipn</guid>
      <description>&lt;p&gt;&lt;small&gt;Originally posted on &lt;a href="https://hackernoon.com/python-wheels-vs-eggs-and-how-data-driven-decisions-must-become-the-norm-in-open-source"&gt;Hackernoon&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;The world of software development is always evolving, and every now and then, you get to a moment in time when the path forks ahead of you. As developers, we have a choice as to which path to take, but each comes with specific consequences that impact the effectiveness and impact of the code going forward.&lt;/p&gt;

&lt;p&gt;Currently, we’re going through one of those moments when it comes to Python Eggs. A recent tweet from Dustin Ingram showed that eggs accounted for less than 1% of built distribution uploads in December 2021.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G0M-SvI---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FKC8hfzXMAQvPBG.png" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ysEkQUNF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/968552013158993920/brCe-8Jk_normal.jpg" alt="Dustin Ingram profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Dustin Ingram
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @di_codes
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Welp, this chart definitely makes it look like it's time to deprecate .egg uploads to &lt;a href="https://twitter.com/pypi"&gt;@pypi&lt;/a&gt;. Less than 1% of built distribution uploads in Dec 2021.&lt;br&gt;&lt;br&gt;Do you still build or install eggs, or maintain a tool that supports eggs? I'd love to hear from you: &lt;a href="https://t.co/bgqm5sbDHW"&gt;github.com/pypa/warehouse…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      17:59 PM - 26 Jan 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1486398470479130624" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1486398470479130624" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1486398470479130624" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;This data kickstarted a vibrant debate as to whether Python eggs should be deprecated. This conversation has a lot that we can learn from in the open-source community, and so we thought we’d explore the lessons in this post.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python Wheels vs Eggs
&lt;/h2&gt;

&lt;p&gt;The .egg format for Python packages was first introduced in 2004 and has served an important purpose most of the time since then. However, when Python Wheels were introduced in 2012, the weaknesses of the egg format became more well known, like the lack of support for clean uninstallations or upgrades, and the fact that only a single version of a project can be installed on any single directory.&lt;/p&gt;

&lt;p&gt;Python Wheels provided meaningful improvements on these, as well as additional improvements in terms of the distribution format, a richer file naming convention, versioning, and better internal organization.&lt;/p&gt;

&lt;p&gt;In light of this, many are debating whether deprecating uploads of new eggs is the right path to take.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How should developers make this decision?&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Importance of Data-Driven Decisions
&lt;/h2&gt;

&lt;p&gt;As a developer, we have limited time and resources with which to accomplish our objectives. Our efficiency relies a lot on prioritization – choosing what to spend time on and, more importantly, what not to spend time on.  So, when we have to consider whether deprecating eggs is the right decision, we want to do so with the right data backing that decision up.&lt;/p&gt;

&lt;p&gt;As a result, many have pointed to these upload statistics as a clear sign that Python eggs are no longer the force they once were. Indeed, this data enables a vastly more informed discussion on the decision than if it was absent.&lt;/p&gt;

&lt;p&gt;However, that doesn’t tell the full story. Even if the proportion of uploads is immaterial, we still don’t have much clarity on how the eggs are being used and relied on. This download data may exist somewhere, but it’s not generally available so that we can do proper analysis.&lt;/p&gt;

&lt;p&gt;This is indicative of a wide range of other key decisions that currently get made on the basis of anecdotal experience, gut intuition, and personal preferences. Without the data being readily accessible, we are impairing our ability to make informed and unbiased decisions.&lt;/p&gt;

&lt;p&gt;As a community, we should be pushing for better visibility, so that we can service users better and &lt;a href="https://www.forbes.com/sites/forbestechcouncil/2022/04/06/uniting-to-act-on-untapped-leverage-how-open-source-maintainers-can-work-together-and-prioritize-long-term-sustainability/?sh=3e782fa044cb"&gt;unlock the leverage&lt;/a&gt; that we have built up over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Scarf Gateway for Python
&lt;/h2&gt;

&lt;p&gt;This data is crucial to our long-term decisions as developers because it helps us understand what aspects of our code are truly driving results for our users. It’s with this in mind that we’re excited to have launched Python support for &lt;a href="https://about.scarf.sh/post/announcing-python-support"&gt;Scarf Gateway&lt;/a&gt;, which will bring better visibility for any and all Python packages.&lt;/p&gt;

&lt;p&gt;This is an important step toward securing the data that we need as an open-source community to make better decisions on all kinds of key matters; from infrastructure to packaging formats to vulnerability assessments and beyond.&lt;/p&gt;

&lt;p&gt;For every decision point that you arrive at as a developer, having timely and accurate data on how your projects are being used helps you to sidestep your own biases and push towards the path that is making the largest impact for your key stakeholders.&lt;/p&gt;

&lt;p&gt;Data-driven decision-making is how the open-source world can work smarter, not harder.&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
