<?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: GitHub</title>
    <description>The latest articles on DEV Community by GitHub (@github).</description>
    <link>https://dev.to/github</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%2F2575%2F3da37f64-b46e-4fa5-bf86-01b63ba5f57b.png</url>
      <title>DEV Community: GitHub</title>
      <link>https://dev.to/github</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/github"/>
    <language>en</language>
    <item>
      <title>Speed Up Your CI/CD: ARM 64 Runners for GitHub Actions</title>
      <dc:creator>Andrea Liliana Griffiths</dc:creator>
      <pubDate>Thu, 15 May 2025 12:24:18 +0000</pubDate>
      <link>https://dev.to/github/speed-up-your-cicd-arm-64-runners-for-github-actions-21g8</link>
      <guid>https://dev.to/github/speed-up-your-cicd-arm-64-runners-for-github-actions-21g8</guid>
      <description>&lt;p&gt;Hey dev.to community! 👋🏽&lt;/p&gt;

&lt;p&gt;I'm Andrea Griffiths, Senior Developer Advocate at GitHub, and I'm excited to share our latest GitHub Checkout episode: &lt;a href="https://youtu.be/xHJ8som-D6Y" rel="noopener noreferrer"&gt;Build &amp;amp; deploy across multi-architecture FASTER with ARM 64 Runners&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;If you're using GitHub Actions for your CI/CD pipelines, this is a massive improvement for handling multi-architecture development. GitHub has expanded runner infrastructure to include Arm64 support, enabling faster, more efficient workflows across diverse architectures.&lt;/p&gt;

&lt;p&gt;This is especially crucial if you're building applications for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud environments&lt;/li&gt;
&lt;li&gt;Edge computing&lt;/li&gt;
&lt;li&gt;IoT devices&lt;/li&gt;
&lt;li&gt;Machine learning workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What You'll Learn
&lt;/h2&gt;

&lt;p&gt;In this GitHub Checkout video featuring Product Manager Larissa Fortuna, you'll discover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How Arm64 runners for GitHub Actions are transforming development workflows&lt;/li&gt;
&lt;li&gt;The significant speed improvements compared to emulation (some customers reduced build times from 3 hours to just 20 minutes!)&lt;/li&gt;
&lt;li&gt;How to create multi-architecture Docker images efficiently&lt;/li&gt;
&lt;li&gt;Ways to reduce carbon emissions (Arm processors use 30-40% less power in data centers)&lt;/li&gt;
&lt;li&gt;Available tools to measure the carbon footprint of your Actions runs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best part? Arm64 runners are &lt;strong&gt;free for public repositories&lt;/strong&gt; with unlimited minutes (only concurrent job limits apply)!&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources Shared in the Video
&lt;/h2&gt;

&lt;p&gt;For those looking to get started:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MULTI-ARCHITECTURE BUILDS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker docs: &lt;a href="https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners" rel="noopener noreferrer"&gt;https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Public github repo: &lt;a href="https://github.com/gartnera/actions-arm64-native-example" rel="noopener noreferrer"&gt;https://github.com/gartnera/actions-arm64-native-example&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;COMMUNITY DISCUSSION&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux discussion: &lt;a href="https://github.com/orgs/community/discussions/148648" rel="noopener noreferrer"&gt;https://github.com/orgs/community/discussions/148648&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Windows discussion: &lt;a href="https://github.com/orgs/community/discussions/155713" rel="noopener noreferrer"&gt;https://github.com/orgs/community/discussions/155713&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Eco-ci tool for estimating carbon emissions: &lt;a href="https://github.com/green-coding-solutions/eco-ci-energy-estimation" rel="noopener noreferrer"&gt;https://github.com/green-coding-solutions/eco-ci-energy-estimation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Join the Conversation
&lt;/h2&gt;

&lt;p&gt;After watching the video, I'd love to hear your thoughts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are you already using Arm64 runners in your CI/CD pipelines?&lt;/li&gt;
&lt;li&gt;What kind of performance improvements have you seen?&lt;/li&gt;
&lt;li&gt;How are you handling multi-architecture deployments for your projects?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out the episode here: &lt;a href="https://youtu.be/xHJ8som-D6Y" rel="noopener noreferrer"&gt;https://youtu.be/xHJ8som-D6Y&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looking forward to your comments!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>githubactions</category>
      <category>cicd</category>
      <category>devops</category>
    </item>
    <item>
      <title>Showcase your open source project at SCALE 🐧 Pasadena, CA · March 6-9, 2025</title>
      <dc:creator>Lee Reilly</dc:creator>
      <pubDate>Fri, 24 Jan 2025 17:51:20 +0000</pubDate>
      <link>https://dev.to/github/showcase-your-open-source-project-at-scale-pasadena-ca-march-6-9-2025-12kn</link>
      <guid>https://dev.to/github/showcase-your-open-source-project-at-scale-pasadena-ca-march-6-9-2025-12kn</guid>
      <description>&lt;p&gt;Hi everyone! 👋&lt;/p&gt;

&lt;p&gt;We're thrilled to invite open source maintainers to an amazing opportunity: showcasing your projects in the GitHub Booth at the 22nd annual &lt;a href="https://www.socallinuxexpo.org/scale/22x" rel="noopener noreferrer"&gt;SCALE&lt;/a&gt; (Southern California Linux Expo), happening March 6-9, 2025!&lt;/p&gt;

&lt;p&gt;SCALE is the largest community-run open-source and free software conference in North America, held at the Pasadena Convention Center. It’s the perfect place to connect with a dynamic open-source community, share your amazing work, and meet developers, enthusiasts, and industry leaders.&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s in it for you?
&lt;/h3&gt;

&lt;p&gt;🎉 A dedicated space in the GitHub Booth to spotlight your project.&lt;br&gt;
  🎟️ 2 complimentary passes to the conference.&lt;br&gt;
  💡 Access to inspiring talks and a chance to network with the open-source community.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to apply
&lt;/h2&gt;

&lt;p&gt;If you’re interested in being part of this incredible event, submit your application today. But don’t wait too long—applications close on February 7th, 2025. Questions? Email &lt;a href="//mailto:opensourcezone@github.com"&gt;opensourcezone@github.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;⚡ Don’t miss out on this fantastic chance to showcase your work and connect with the community. We look forward to seeing you at SCALE!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apply Now:&lt;/strong&gt; &lt;a href="https://gh.io/scale22x-open-source-zone" rel="noopener noreferrer"&gt;https://gh.io/scale22x-open-source-zone&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Lee&lt;/p&gt;

&lt;p&gt;PS: We did &lt;a href="https://dev.to/github/showcase-your-open-source-project-at-top-developer-conferences-in-berlin-this-summer-5aki"&gt;something similar in Berlin last summer&lt;/a&gt; and everyone had a great time (see image below). This one may be smaller in &lt;em&gt;scale&lt;/em&gt;. Pun intended.&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%2F1e01ir9x3algfzdf9u01.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%2F1e01ir9x3algfzdf9u01.gif" alt="Footage from Open Source Fair at The Merge in Berlin" width="500" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;sup&gt; &lt;a href="https://github.com/line/armeria" rel="noopener noreferrer"&gt;Armeria&lt;/a&gt;, &lt;a href="https://github.com/izderadicka/audioserve" rel="noopener noreferrer"&gt;audioserve&lt;/a&gt;, &lt;a href="https://github.com/carapace-sh" rel="noopener noreferrer"&gt;Carapace&lt;/a&gt;, &lt;a href="https://github.com/cilium" rel="noopener noreferrer"&gt;Cilium&lt;/a&gt;, &lt;a href="https://github.com/dashersw/cote" rel="noopener noreferrer"&gt;cote&lt;/a&gt;, &lt;a href="https://github.com/dbeaver/dbeaver" rel="noopener noreferrer"&gt;DBeaver&lt;/a&gt;, &lt;a href="https://github.com/decidim/decidim" rel="noopener noreferrer"&gt;decidim&lt;/a&gt;, &lt;a href="https://github.com/dlt-hub" rel="noopener noreferrer"&gt;dlthub&lt;/a&gt;, &lt;a href="https://github.com/dstackai/dstack" rel="noopener noreferrer"&gt;dstack&lt;/a&gt;, &lt;a href="https://github.com/Homebrew" rel="noopener noreferrer"&gt;Homebrew&lt;/a&gt;, &lt;a href="https://github.com/d2phap/ImageGlass" rel="noopener noreferrer"&gt;ImageGlass&lt;/a&gt;, &lt;a href="https://github.com/Nitwel/Immersive-Home" rel="noopener noreferrer"&gt;Immersive Home&lt;/a&gt;, &lt;a href="https://github.com/infracost/infracost" rel="noopener noreferrer"&gt;Infracost&lt;/a&gt;, &lt;a href="https://github.com/bruin-data/ingestr" rel="noopener noreferrer"&gt;ingestr&lt;/a&gt;, &lt;a href="https://github.com/kitspace" rel="noopener noreferrer"&gt;Kitspace.org&lt;/a&gt;, &lt;a href="https://github.com/kluctl/kluctl" rel="noopener noreferrer"&gt;kluctl&lt;/a&gt;, &lt;a href="https://github.com/libgit2" rel="noopener noreferrer"&gt;libgit2&lt;/a&gt;, &lt;a href="https://github.com/next-hat/nanocl" rel="noopener noreferrer"&gt;Nanocl&lt;/a&gt;, &lt;a href="https://github.com/ohmyzsh/ohmyzsh" rel="noopener noreferrer"&gt;Oh My Zsh&lt;/a&gt;, &lt;a href="https://github.com/pact-foundation" rel="noopener noreferrer"&gt;Pact&lt;/a&gt;, &lt;a href="https://github.com/xataio/pgroll" rel="noopener noreferrer"&gt;pgroll&lt;/a&gt;, &lt;a href="https://github.com/stepci" rel="noopener noreferrer"&gt;Step CI&lt;/a&gt;, &lt;a href="https://github.com/unikraft/unikraft" rel="noopener noreferrer"&gt;Unikraft&lt;/a&gt;, &lt;a href="https://github.com/wolfi-dev/" rel="noopener noreferrer"&gt;Wolfi&lt;/a&gt; exhibiting at the Open Source Fair at The Merge in Berlin, July 2024.&lt;/sup&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>linux</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Release Radar · September 2024: Major updates from the open source community</title>
      <dc:creator>Michelle Duke</dc:creator>
      <pubDate>Sat, 05 Oct 2024 00:49:35 +0000</pubDate>
      <link>https://dev.to/github/release-radar-september-2024-major-updates-from-the-open-source-community-30ki</link>
      <guid>https://dev.to/github/release-radar-september-2024-major-updates-from-the-open-source-community-30ki</guid>
      <description>&lt;p&gt;We're heading into the spooky season, which means &lt;a href="https://hacktoberfest.com/" rel="noopener noreferrer"&gt;Hacktoberfest&lt;/a&gt; has also started. This is a month-long celebration of open source; encouraging developers to contribute to open source projects. If you're struggling to find good projects, you might find some inspiration here. There's everything from fun side hustles, to groundbreaking technology. Let's take a look at GitHub's picks for this month's Release Radar; a roundup of the open source projects that have shipped major version updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Redwood 8.0
&lt;/h2&gt;

&lt;p&gt;If you're looking to swiftly create some React-based web applications, then &lt;a href="https://github.com/redwoodjs/redwood" rel="noopener noreferrer"&gt;Redwood&lt;/a&gt; is for you. It's the perfect framework if you're looking to mock up something for a hackathon, a startup, or to create a decent prototype to show off your next big idea. The latest version brings background jobs, a way for you to create and execute background jobs within your React-based app; send an email or process an image. There's now support for Docker, and updates for the latest versions of React, Prisma, Vite, and more. Check out the &lt;a href="https://redwoodjs.com/upgrade/v8" rel="noopener noreferrer"&gt;full release blog&lt;/a&gt; for all the details.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/fypXtsXxeIc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Express 5.0
&lt;/h2&gt;

&lt;p&gt;More frameworks! This one is for Node.js applications, and is designed to be minimalist. There are tonnes of changes to the latest version of &lt;a href="https://expressjs.com/" rel="noopener noreferrer"&gt;Express&lt;/a&gt;, including new document beta releases expectations, a new threat model, added CodeQL (SAST), support for Node 22, and lots more. Check out all the changes, as well as new contributors, in the &lt;a href="https://github.com/expressjs/express/releases/tag/v5.0.0" rel="noopener noreferrer"&gt;Express release notes&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  date-fns 4.0
&lt;/h2&gt;

&lt;p&gt;JavaScript seems to be the flavour of the month, and here's another JavaScript project for you. &lt;a href="https://date-fns.org/" rel="noopener noreferrer"&gt;date-fns&lt;/a&gt; provides the most comprehensive and consistent toolset for manipulating JavaScript dates in a browser &amp;amp; Node.js. The latest version comes ten years after the very first release. There are no breaking changes in the release, and it comes with added time zone support, meaning you can select which time zone to make calculations in. There are some changes to functional arguments and a few fixes. Read up on all the changes in the &lt;a href="https://github.com/date-fns/date-fns/releases/tag/v4.0.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;addDays&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;startOfDay&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;date-fns&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tz&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@date-fns/tz&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nf"&gt;startOfDay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;addDays&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;tz&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Asia/Singapore&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;span class="c1"&gt;//=&amp;gt; "2024-09-16T00:00:00.000+08:00"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Prefect 3.0
&lt;/h2&gt;

&lt;p&gt;Let's switch gears from JavaScript to Python. &lt;a href="https://github.com/PrefectHQ/prefect" rel="noopener noreferrer"&gt;Prefect&lt;/a&gt; is a workflow orchestration framework for building data pipelines in Python. Workflow activity is tracked and can be monitored with a self-hosted server, or managed dashboard. The latest release is now 10x faster, event-driven, and comes with a robust API. These new pre-built event-driven workflows are available in Prefect-Open-Source. Your data can now tell your workflows when they are ready to be processed. Check out all the few features and updates in the &lt;a href="https://www.prefect.io/blog/prefect-3-generally-available-september-3" rel="noopener noreferrer"&gt;Prefect blog post&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;prefect.automations&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Automation&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;prefect.events.actions&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;PauseDeployment&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;prefect.events.schemas.automations&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;EventTrigger&lt;/span&gt;

&lt;span class="n"&gt;my_automation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Automation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Pause critical workflow&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;trigger&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nc"&gt;EventTrigger&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;expect&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prefect.flow-run.Failed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prefect.resource.id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prefect.flow-run.*&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]},&lt;/span&gt;
        &lt;span class="n"&gt;match_related&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prefect.resource.role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;flow&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prefect.resource.name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;critical_workflow&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;actions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;PauseDeployment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;source&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;inferred&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;my_automation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  PacketFence 14.0
&lt;/h2&gt;

&lt;p&gt;Looking for a network access control (NAC) solution? Then look no further than &lt;a href="https://github.com/inverse-inc/packetfence" rel="noopener noreferrer"&gt;PacketFence&lt;/a&gt;. This solution includes a captive-portal for registration and remediation, centralised wired, wireless and VPN management, industry-leading BYOD capabilities, 802.1X and RBAC support, integrated network anomaly detection with layer-2 isolation of problematic devices. &lt;a href="https://www.packetfence.org/" rel="noopener noreferrer"&gt;PacketFence&lt;/a&gt; version 14 brings support for Debian 12 and OSQuery, as well as some neat enhancements including Firewall SSO clustering load-balancing, and cluster support for domain.conf.&lt;/p&gt;
&lt;h2&gt;
  
  
  Kingfisher 8.0
&lt;/h2&gt;

&lt;p&gt;I'm not much of an Apple user, but Swift developers will love this. &lt;a href="https://github.com/onevcat/Kingfisher" rel="noopener noreferrer"&gt;Kingfisher&lt;/a&gt; is a library for downloading and caching images on the web. It includes asynchronous image downloading and caching, multi-layer hybrid cache for both memory and disk, and some useful image processors and filters. The latest version includes support for Swift Concurrency, compatibility with Swift 6, and backward language compatibility. Check out all the changes, including some breaking changes in the &lt;a href="https://github.com/onevcat/Kingfisher/releases/tag/8.0.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/onevcat" rel="noopener noreferrer"&gt;
        onevcat
      &lt;/a&gt; / &lt;a href="https://github.com/onevcat/Kingfisher" rel="noopener noreferrer"&gt;
        Kingfisher
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A lightweight, pure-Swift library for downloading and caching images from the web.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/onevcat/Kingfisher/master/images/logo.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fonevcat%2FKingfisher%2Fmaster%2Fimages%2Flogo.png" alt="Kingfisher" title="Kingfisher" width="557"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://github.com/onevcat/Kingfisher/actions?query=workflow%3Abuild" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/onevcat/kingfisher/workflows/build/badge.svg?branch=master"&gt;&lt;/a&gt;
&lt;a href="https://swiftpackageindex.com/onevcat/Kingfisher/master/documentation/kingfisher" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1b5d32ab6e675fda821ac44692f6535372e285c4991a269e16f358b4b8f3ae78/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53776966742d446f632d4445354334332e7376673f7374796c653d666c6174"&gt;&lt;/a&gt;
&lt;a href="https://cocoapods.org/pods/Kingfisher" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/61857904053aa90d909ff74a802d6390407e41ad006c131ebda861884200d31f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f6f6e65766361742f4b696e676669736865722e7376673f636f6c6f723d626c756526696e636c7564655f70726572656c65617365733d26736f72743d73656d766572"&gt;&lt;/a&gt;
&lt;a href="https://swift.org/package-manager/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1bb64344bf3f20c4f5b87d8a31e5416811d31c75c5976c9450aa1e7ef5d03c95/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53504d2d737570706f727465642d4445354334332e7376673f7374796c653d666c6174"&gt;&lt;/a&gt;
&lt;a href="https://raw.githubusercontent.com/onevcat/Kingfisher/master/LICENSE" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8055c7e775d7b0cbf9fac95f3599368af048cb768311266b5c54a508d640f0bf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c61636b"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web. It provides you a chance to use a pure-Swift way to work with remote images in your next app.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;


&lt;ul class="contains-task-list"&gt;

&lt;li class="task-list-item"&gt;

 Asynchronous image downloading and caching.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Loading image from either &lt;code&gt;URLSession&lt;/code&gt;-based networking or local provided data.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Useful image processors and filters provided.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Multiple-layer hybrid cache for both memory and disk.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Fine control on cache behavior. Customizable expiration date and size limit.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Cancelable downloading and auto-reusing previous downloaded content to improve performance.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Independent components. Use the downloader, caching system, and image processors separately as you need.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Prefetching images and showing them from the cache to boost your app.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Extensions for &lt;code&gt;UIImageView&lt;/code&gt;, &lt;code&gt;NSImageView&lt;/code&gt;, &lt;code&gt;NSButton&lt;/code&gt;, &lt;code&gt;UIButton&lt;/code&gt;, &lt;code&gt;NSTextAttachment&lt;/code&gt;, &lt;code&gt;WKInterfaceImage&lt;/code&gt;, &lt;code&gt;TVMonogramView&lt;/code&gt; and &lt;code&gt;CPListItem&lt;/code&gt; to directly set an image from a URL.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Built-in transition animation when setting images.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Customizable placeholder and indicator while loading images.&lt;/li&gt;

&lt;li class="task-list-item"&gt;

 Extensible…&lt;/li&gt;

&lt;/ul&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/onevcat/Kingfisher" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  n 10.0
&lt;/h2&gt;

&lt;p&gt;Short for "interactively manage Node.js versions", &lt;a href="https://github.com/tj/n" rel="noopener noreferrer"&gt;n&lt;/a&gt; helps you manage your version of Node.js without any profile setup, subshells, or API hook. The latest version is mainly due to the use of &lt;code&gt;jq&lt;/code&gt; over &lt;code&gt;node&lt;/code&gt; for reading &lt;code&gt;package.json&lt;/code&gt;. n can also avoid a network lookup if either auto or engine finds a specified numeric 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%2F9gec1qr0d221imm2zxqu.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%2F9gec1qr0d221imm2zxqu.gif" alt="n management" width="640" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Verdaccio 6.0
&lt;/h2&gt;

&lt;p&gt;Are you tired of needing an entire database just to get started? &lt;a href="https://github.com/verdaccio/verdaccio" rel="noopener noreferrer"&gt;Verdaccio&lt;/a&gt; changes all that with an out-of-the-box database you can use for your local private npm registry. It can proxy other registers, and cache downloaded modules. The newest update drops support for Node.js 16, taking minimum support for Node.js 18.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/qRMucS3i3kQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🤗 Datasets 3.0
&lt;/h2&gt;

&lt;p&gt;From Hugging Face, come &lt;a href="https://huggingface.co/docs/datasets/index" rel="noopener noreferrer"&gt;🤗 Datasets&lt;/a&gt;, the largest hub of ready-to-use datasets for machine learning models. The latest update comes with support for Polars functions and NumPy2. There's some deprecated code and cache changes. There's improvements to tutorial with a link for loading datasets and some fixes. Read up on all the changes, fixes, and new contributors in the 🤗 Datasets &lt;a href="https://github.com/huggingface/datasets/releases/tag/3.0.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&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%2Ftlt46zpzz6kdfjfg4bnn.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%2Ftlt46zpzz6kdfjfg4bnn.png" alt="datasets card" width="800" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Realm 20.0
&lt;/h2&gt;

&lt;p&gt;From the team at MongoDB comes &lt;a href="https://realm.io/" rel="noopener noreferrer"&gt;Realm&lt;/a&gt;, a mobile database that runs directly inside phones, tablets, or wearables. It's built for mobile, and designed for offline use. The latest release comes with built-in Swift 6 language mode, and Xcode 16 support. Some breaking changes include removal of Atlas App Services and Atlas Device Sync functionality, Strings and Data now considered different types and thus queries won't match one another, and Realms are no longer autoreleased when initialised. Dig into all the &lt;a href="https://github.com/realm/realm-swift/releases/tag/v20.0.0" rel="noopener noreferrer"&gt;updates in the Realm changelog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Release Radar September
&lt;/h2&gt;

&lt;p&gt;Well, that’s all for this edition. Hopefully you have some ideas on projects you'd like to contribute to for &lt;a href="https://hacktoberfest.com/" rel="noopener noreferrer"&gt;Hacktoberfest&lt;/a&gt;. Thanks to everyone who submitted a project to be featured. We loved reading about the great things you're all working on. Whether your project is featured here or not, congratulations to everyone who shipped a new release 🎉, regardless of whether you shipped your project's first version, or you launched 20.0.&lt;/p&gt;

&lt;p&gt;If you missed our last Release Radar, &lt;a href="https://dev.to/github/release-radar-august-2024-major-updates-from-the-open-source-community-54mo"&gt;check out the amazing open source projects that released major version projects in August&lt;/a&gt;. We love featuring projects submitted by the community. If you're working on an open source project and shipping a major version soon, we'd love to hear from you. &lt;a href="https://github.com/github/release-radar/issues/new?assignees=MishManners&amp;amp;labels=&amp;amp;template=release-radar-request.yml&amp;amp;title=%5BRelease+Radar+Request%5D+%3Ctitle%3E" rel="noopener noreferrer"&gt;Check out the Release Radar repository, and submit your project to be featured&lt;/a&gt; in the GitHub Release Radar.&lt;/p&gt;

</description>
      <category>github</category>
      <category>community</category>
      <category>opensource</category>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>A checklist and guide to get your repository collaboration-ready</title>
      <dc:creator>peckjon</dc:creator>
      <pubDate>Wed, 18 Sep 2024 18:44:15 +0000</pubDate>
      <link>https://dev.to/github/a-checklist-and-guide-to-get-your-repository-collaboration-ready-3eld</link>
      <guid>https://dev.to/github/a-checklist-and-guide-to-get-your-repository-collaboration-ready-3eld</guid>
      <description>&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Want the TL;DR, or you’ve already been using GitHub for a while? Skip to the end for a printable checklist that you can use to ensure that you’ve covered all aspects of making your repository collaboration-ready.&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;My daughter has a pair of pet gerbils. They’re awesome, but not the most complex creatures to care for. They need their cage cleaned occasionally, their food and water refilled, and may need a neighbor to check in on them if we’re away for a while. But someday, she may have a pet that requires more care and attention–a cat or dog perhaps, which needs to be played with and nurtured every day–so she’ll want to have a few good friends who know her pet and can be their companion whenever she’s away. And someday, she may even have a child of her own, making her connections to community and family ever more important. As the saying goes, it takes a village to raise a child.&lt;/p&gt;

&lt;p&gt;So it goes with code projects. My colleagues and I often refer to our projects as “pets” or even “children” (sometimes jokingly, sometimes obsessively). We pour a lot of our own care and attention into them, but it can be easy to forget how important the community’s contributions can be to their success. In the world of software development, collaboration can make the difference between a brittle last-minute release and a reliable, maintainable, pain-free project. Whether you’ve been coding for a day or a decade, your colleagues are there to help strengthen your work. But they can only help if you’ve given them the tools to do so.&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%2Fm13ak7a9w6z7xf83dszt.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%2Fm13ak7a9w6z7xf83dszt.png" alt="Two gerbils typing on a keyboard" width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your primary responsibility as the creator or maintainer of a repository is to ensure that others can appropriately use, understand, and even contribute to the project. GitHub is here to support that mission, but ensuring that a repository is collaboration-ready takes a bit more effort than using &lt;code&gt;git clone&lt;/code&gt;. So read on to learn the settings, content, and behaviors that will help you succeed.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Repository settings&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://docs.github.com/repositories/managing-your-repositorys-settings-and-features" rel="noopener noreferrer"&gt;settings of your repository&lt;/a&gt; lay the foundation for collaboration. They determine who can see and contribute to your project, how contributions are reviewed, and what happens to those contributions once they are submitted. Properly used, they can foster an environment in which contributors across the globe will find, make use of, and help build your project. In a corporate setting, they help shift developers from a siloed way of thinking and building to a “search-first, collaborate-first” mindset. This practice, known as &lt;a href="https://gh.io/innersource" rel="noopener noreferrer"&gt;innersourcing&lt;/a&gt;, reduces redundant work and accelerates the whole company.&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%2F4b1ups8622i9vgfjy0b7.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%2F4b1ups8622i9vgfjy0b7.png" alt="Screenshot of the " width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Visibility&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You’re aiming to maximize contributions and reuse, but that doesn’t always mean making your repository public, especially in a corporate setting where information privacy is a consideration. You have several options available in the “Settings” tab of your repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Public&lt;/strong&gt; lets anyone in the world see and copy your code, and generally allows them to create issues or pull requests, so they can provide feedback about whether it works well, or even suggest (but not force) changes to improve it. This is generally great for personal projects containing no protected information (those tokens are all &lt;a href="https://docs.github.com/actions/security-guides/encrypted-secrets" rel="noopener noreferrer"&gt;stored separately&lt;/a&gt;, right?) but only for certain “blessed” company projects.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internal&lt;/strong&gt; is a &lt;a href="https://docs.github.com/enterprise-cloud@latest/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility#making-a-repository-internal" rel="noopener noreferrer"&gt;special visibility level&lt;/a&gt; used by &lt;a href="https://github.com/enterprise" rel="noopener noreferrer"&gt;GitHub Enterprise&lt;/a&gt;, allowing anyone inside your organization to see the repository, but nobody in the outside world. We generally suggest this as the default level for company projects that don’t have siloed sensitive information (such as customer-specific data or logic that only a specific group should know about).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private&lt;/strong&gt; is the most restrictive option, and can be a collaboration-killer. Use this option sparingly, and if you do, be sure to invite some collaborators.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaborators&lt;/strong&gt; are specific individuals or teams you &lt;a href="https://docs.github.com/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository" rel="noopener noreferrer"&gt;invite to be part of&lt;/a&gt; your project. They can be given specific &lt;a href="https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization" rel="noopener noreferrer"&gt;roles&lt;/a&gt; such as “Read” (allowing them to see your otherwise private repository), “Write” (letting them directly commit or manage pull requests), “Admin”, and many others.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Protect the main branch&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;While you want to maximize the number of people who can see and contribute to your project, you still need to ensure that their contributions are properly reviewed, both by your core team members and by automation. In most cases, you’ll want to create a &lt;a href="https://github.blog/2023-07-24-github-repository-rules-are-now-generally-available/" rel="noopener noreferrer"&gt;repository rule&lt;/a&gt; (the modern replacement for &lt;a href="https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches" rel="noopener noreferrer"&gt;branch protection&lt;/a&gt;) on your main branch and configure it to require a pull request before merging is allowed. By requiring at least one approver, ideally one from your CODEOWNERS file (discussed in the next section), you’ll guarantee that another human reviews each set of changes. In addition, you will want to have automated tools such as unit tests run against each pull request; these are known as &lt;a href="https://docs.github.com/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks" rel="noopener noreferrer"&gt;status checks&lt;/a&gt; and will be covered under “&lt;a href="https://github.blog/enterprise-software/collaboration/a-checklist-and-guide-to-get-your-repository-collaboration-ready/#3-automation-and-checks" rel="noopener noreferrer"&gt;Automation and checks&lt;/a&gt;” below.&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%2Ft73gqfo5gixlqpi2ogej.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%2Ft73gqfo5gixlqpi2ogej.png" alt="Screenshot: the settings " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Repository contents&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Software projects don’t just consist of code. Your repository should act as a guide to collaborators, letting them know why it exists, how to use it appropriately, and the best ways to contribute. Adding a few key files (generally written using &lt;a href="https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax" rel="noopener noreferrer"&gt;Markdown&lt;/a&gt;) will help other people discover your project and understand how to collaborate effectively.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;README.md&lt;/code&gt;: This is the first file visitors to your repository will see, so it is critical to &lt;a href="https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes" rel="noopener noreferrer"&gt;include in your repository&lt;/a&gt;. It should describe what your project does, how to use the repository, and any configuration needed. Additionally, a good README includes the mission of the project, what it aims to do, and why it exists. Lastly, be sure to describe how and by whom the project is maintained.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LICENSE.md&lt;/code&gt;: A license file defines what others can and can’t do with your code and other content. Whether your goal is to allow unrestricted use of your project, or to add special restrictions on its usage and distribution, it’s crucial to include a license. Visit &lt;a href="https://choosealicense.com/" rel="noopener noreferrer"&gt;choosealicense.com&lt;/a&gt; for guidance on which license might work best for your project, then &lt;a href="https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository" rel="noopener noreferrer"&gt;add one&lt;/a&gt; to your repository.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CONTRIBUTING.md&lt;/code&gt;: You can reduce the amount of confusion and friction that potential contributors (and you) face by clearly defining why and how others can contribute new code, documentation, art, or other elements to your project. If the contribution steps are very simple, you might just include them in your README; but, if you find it takes more than a paragraph or two (and it usually does), it’s best to create this separate file. It should include information about the types of contributions you’re looking for, how to propose a new feature or bug fix, the process for submitting pull requests, and any specific coding standards or style guidelines contributors should follow. For a good example, take a look at the &lt;a href="https://github.com/github/docs/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;contributor guide from GitHub’s docs project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CODEOWNERS&lt;/code&gt;: A &lt;a href="https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners" rel="noopener noreferrer"&gt;CODEOWNERS file&lt;/a&gt; assigns one or more users who will be responsible for code in a particular part of your repository. As specified in the repository settings, these individuals will be automatically requested for review when someone opens a pull request that modifies code they own. Note that this file, unlike the others mentioned here, should &lt;em&gt;not&lt;/em&gt; have the “.md” extension.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CODE\_OF\_CONDUCT.md&lt;/code&gt;: A code of conduct establishes the social norms, rules, and responsibilities that participants in your project should follow. It promotes a friendly and respectful environment for collaboration, and it is easy to add &lt;a href="https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions/adding-a-code-of-conduct-to-your-project" rel="noopener noreferrer"&gt;manually or by using one of GitHub’s templates&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;With these files in place, your repository will be much more approachable and understandable, and you should start seeing contributions flow more freely. But if you want to go even further, there’s even more you can do to &lt;a href="https://docs.github.com/communities/setting-up-your-project-for-healthy-contributions" rel="noopener noreferrer"&gt;set up your project for healthy contributions&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;3. Automation and checks&lt;/strong&gt;
&lt;/h2&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%2Ffrhmn9ebzloboyfy295v.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%2Ffrhmn9ebzloboyfy295v.png" alt="Two gerbils in The Matrix" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s time to enter the Matrix. As Agent Smith is fond of saying, “Never send a human to do a machine’s job.” While you generally want at least one human reviewer for each major change, you should make their job as easy as possible. GitHub’s built-in automation and CI/CD system, &lt;a href="https://docs.github.com/actions" rel="noopener noreferrer"&gt;GitHub Actions&lt;/a&gt;, allows you to run workflows in response to file changes, pull requests, external triggers such as chat tools, and even cron jobs. Let’s look at a few ways this can make collaborators’ lives easier.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Linting&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Linters are tools that analyze code to detect various types of errors and enforce a consistent coding style. Incorporating linters into your development process can greatly improve the readability and quality of your code, making it easier for others to understand and contribute to your project. One of the most popular is &lt;a href="https://github.com/marketplace/actions/super-linter" rel="noopener noreferrer"&gt;Super-Linter&lt;/a&gt;, which can be initially configured in &lt;a href="https://github.com/super-linter/super-linter#example-connecting-github-action-workflow" rel="noopener noreferrer"&gt;a single cut-and-paste step&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Building and testing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;While the exact compilers and test suites you run will be specific to the language and framework of your application, most can be executed automatically in your repository. To find the right ones, search through GitHub Marketplace’s list of &lt;a href="https://github.com/marketplace?query=build" rel="noopener noreferrer"&gt;Build&lt;/a&gt; and &lt;a href="https://github.com/marketplace?category=testing" rel="noopener noreferrer"&gt;Test Apps &amp;amp; Actions&lt;/a&gt;, then follow the instructions specific to your preferred tool. Or, execute them by &lt;a href="https://docs.github.com/actions/learn-github-actions/essential-features-of-github-actions#adding-scripts-to-your-workflow" rel="noopener noreferrer"&gt;running command-line scripts and arguments in your GitHub Actions workflow&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Checks&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When information is surfaced to reviewers right inside the pull request, it makes their job faster and easier, eliminating the need for them to manually run test suites or run through a physical checklist. If the automated checks fail, you can even block deployments from going out the door. Once you’ve added a linter or test suite as described above, and &lt;strong&gt;&lt;em&gt;it has run at least once&lt;/em&gt;&lt;/strong&gt;, consider configuring it as a &lt;a href="https://docs.github.com/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks" rel="noopener noreferrer"&gt;status check&lt;/a&gt; in your repository settings. This will help ensure that your app is properly tested each and every time a pull request is created.&lt;/p&gt;

&lt;p&gt;This is not a complete list, but every project is different, so also consider what other &lt;a href="https://github.com/marketplace?category=code-quality" rel="noopener noreferrer"&gt;code quality&lt;/a&gt;, &lt;a href="https://github.com/marketplace?category=dependency-management" rel="noopener noreferrer"&gt;dependency management&lt;/a&gt;, or &lt;a href="https://github.com/marketplace?category=deployment" rel="noopener noreferrer"&gt;pre-release automation&lt;/a&gt; you might want to include. Then, consider how you want to deploy the project. In most cases, you’ll find there is a component in the &lt;a href="https://github.com/marketplace" rel="noopener noreferrer"&gt;GitHub Marketplace&lt;/a&gt; that provides turnkey integration with your favorite infrastructure provider, but it’s also possible to &lt;a href="https://docs.github.com/actions/deployment/about-deployments/deploying-with-github-actions" rel="noopener noreferrer"&gt;write your own GitHub Action&lt;/a&gt; to deploy your app after all the checks have passed. And, for high-volume enterprise projects, consider using &lt;a href="https://github.blog/2023-07-12-github-merge-queue-is-generally-available/" rel="noopener noreferrer"&gt;merge queues&lt;/a&gt; if you start getting traffic jams on rapidly changing branches.&lt;/p&gt;

&lt;p&gt;With these automation tools and checks in place, you can have more confidence in the quality and consistency of contributions to your repository and spend less time manually managing the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;4. Security&lt;/strong&gt;
&lt;/h2&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%2Flufc464wxe6sg4iyp5iw.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%2Flufc464wxe6sg4iyp5iw.png" alt="Screenshot of the Security overview page of a repository" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Security is a paramount concern in any software project and is especially important when including a variety of collaborators who may have different levels of security training (or none at all). Fortunately, there are a few simple steps you can take to protect your code, data, and users from potential threats.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Roles&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Carefully decide which &lt;a href="https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization" rel="noopener noreferrer"&gt;roles&lt;/a&gt;, and thus permissions, you give to collaborators in your repository. Generally speaking, you’ll want to assign the “Read” role to the general public. “Triage” and “Write” are for trusted individuals such as members of your company or working group (but only once protected branches and checks have been set up). “Maintain” and “Admin” roles are best for your core maintainers, who are responsible for reviewing and managing what goes into production. Also consider that “Triage” and above have the ability to manage issues, discussions, and comments–so you’ll want to trust that they have the commitment and background to manage the flow of metadata surrounding your project. Enterprise customers can take advantage of &lt;a href="https://docs.github.com/enterprise-cloud@latest/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization" rel="noopener noreferrer"&gt;custom repository roles&lt;/a&gt; for more granular permissions control.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Secrets management&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Secrets are sensitive data like API keys, passwords, and certificates that you need to keep private. You don’t want these to be directly embedded into your code or your logs; instead, you should use either a third-party keystore or GitHub’s native secret-management tools, which can be found under the “Secrets and Variables” section of your repository settings. There, you’ll find separate sections &lt;a href="https://docs.github.com/codespaces/managing-codespaces-for-your-organization/managing-encrypted-secrets-for-your-repository-and-organization-for-github-codespaces" rel="noopener noreferrer"&gt;for GitHub Codespaces&lt;/a&gt; (a tool described in the “Advanced Options” section below) and &lt;a href="https://docs.github.com/actions/security-guides/encrypted-secrets" rel="noopener noreferrer"&gt;for GitHub Actions&lt;/a&gt;, because you may want to use different secrets during development than you do in production.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Security scanners&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Scanning code for vulnerabilities is &lt;a href="https://github.com/features/security" rel="noopener noreferrer"&gt;a complex topic&lt;/a&gt;, but breaks down into three major categories.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dependencies&lt;/strong&gt;: 80-90% of most applications’ code comes from third-party sources–the frameworks and packages we build the rest of our code on top of. GitHub Dependabot is available on all public repositories, and can be &lt;a href="https://docs.github.com/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates" rel="noopener noreferrer"&gt;automatically enabled&lt;/a&gt; across entire organizations. It is able to alert you (and help provide a fix) whenever an insecure dependency is found. To ensure that Dependabot is running, check the “security” tab at the top of your repository. You can also enable &lt;a href="https://docs.github.com/code-security/dependabot/dependabot-version-updates" rel="noopener noreferrer"&gt;dependency version updates&lt;/a&gt; to let you know when new versions of packages are available, so you can keep up-to-date even if an explicit vulnerability has not been identified.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secrets&lt;/strong&gt;: While you should already be using a secret manager as described above, we all make mistakes, and some tokens may slip through the cracks and get embedded directly into code. &lt;a href="https://docs.github.com/code-security/secret-scanning/about-secret-scanning" rel="noopener noreferrer"&gt;Secret scanning&lt;/a&gt; tools, provided both through &lt;a href="https://github.com/marketplace?category=security&amp;amp;type=actions&amp;amp;query=secret+" rel="noopener noreferrer"&gt;third-party integrations&lt;/a&gt; and via &lt;a href="https://docs.github.com/get-started/learning-about-github/about-github-advanced-security#about-advanced-security-features" rel="noopener noreferrer"&gt;GitHub Advanced Security&lt;/a&gt; for Enterprises, can notify you about or even block secret tokens as they are pushed into your repository.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Novel Vulnerabilities&lt;/strong&gt;: As you write new code, you may accidentally add new vulnerabilities, either in the novel code itself or in the way you wire together existing components. There are a &lt;a href="https://github.com/marketplace?category=security" rel="noopener noreferrer"&gt;wide variety&lt;/a&gt; of ways to scan your overall application, some of which are language-dependant. Enterprises can also rely on GitHub Advanced Security’s &lt;a href="https://docs.github.com/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning" rel="noopener noreferrer"&gt;code scanning&lt;/a&gt; to find a wide variety of flaws, from SQL injection to circular references, in &lt;a href="https://docs.github.com/get-started/learning-about-github/github-language-support" rel="noopener noreferrer"&gt;most popular coding languages&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;SECURITY.md and private vulnerability reporting&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If a user or security researcher identifies a problem with your project, they need to know how to securely and responsibly report it. Include a &lt;a href="https://docs.github.com/code-security/getting-started/adding-a-security-policy-to-your-repository" rel="noopener noreferrer"&gt;security policy file&lt;/a&gt; in your repository to provide these guidelines and to help maintain the trust of your users and the wider community. Also turn on &lt;a href="https://docs.github.com/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository" rel="noopener noreferrer"&gt;private vulnerability reporting&lt;/a&gt;; this allows security researchers to securely report any vulnerabilities they find!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;5. Advanced options&lt;/strong&gt;
&lt;/h2&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%2Fmqouqiatsqlvw5vuii1f.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%2Fmqouqiatsqlvw5vuii1f.png" alt="Two gerbils speed through the cosmos on a space-bike" width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Beyond the basics, there are a number of advanced options you can leverage to further enhance your repository’s collaboration readiness.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Issue templates&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As collaborators make use of your project, they will file &lt;a href="https://docs.github.com/issues/tracking-your-work-with-issues" rel="noopener noreferrer"&gt;issues&lt;/a&gt; asking for bug fixes and enhancements. By default, these requests will be fairly unstructured, and you may need to loop back to the creator several times to get all the information you need. By creating a few &lt;a href="https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository" rel="noopener noreferrer"&gt;issue templates&lt;/a&gt;, you can provide guidance, define which required and optional fields users will see, and set up specific options they’ll select when opening issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;GitHub Codespaces configuration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;GitHub Codespaces provides a complete, configurable dev environment on top of a repository. This allows anyone to work on your project from anywhere, without having to set up a local environment. &lt;a href="https://docs.github.com/codespaces/setting-up-your-project-for-codespaces" rel="noopener noreferrer"&gt;Providing a well-configured codespace&lt;/a&gt; can make it much easier for others to contribute to your project and makes the project less brittle, since all developers will be working from the same configuration (eliminating the “it works on my machine but not yours” problem).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Environments&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.github.com/actions/deployment/targeting-different-environments/using-environments-for-deployment" rel="noopener noreferrer"&gt;GitHub Environments&lt;/a&gt; let you specify where certain tasks (like deployments) should happen. They can be configured with specific protection rules, ensuring that important tasks only happen in a controlled and secure manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;6. Next steps&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Now that you’ve set up your repository, it’s time to consider the broader aspects of collaboration, including your role as a maintainer and how you engage with your community.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Responsiveness&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As a maintainer, your responsiveness plays a crucial role in fostering a healthy, collaborative environment. This involves promptly addressing issues and pull requests, providing feedback, and guiding new contributors. Set aside specific times each week that you’ll dedicate toward responding to changes and remediating problems. If you want to measure how responsive your project is, check out the &lt;a href="https://github.blog/2023-07-19-metrics-for-issues-pull-requests-and-discussions/" rel="noopener noreferrer"&gt;Metrics Action&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Project management&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;GitHub’s native &lt;a href="https://github.com/features/issues" rel="noopener noreferrer"&gt;project planning&lt;/a&gt; capabilities are usable both for individual projects and enterprise-wide collaboration. Set up &lt;a href="https://docs.github.com/issues/planning-and-tracking-with-projects" rel="noopener noreferrer"&gt;GitHub Projects&lt;/a&gt; to manage your work and provide visibility to your community. This not only helps you stay organized, but also allows others to understand the current status of the project and where they can contribute.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Visibility&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A well-maintained repository is of little use if nobody knows about it. Promote your project through blog posts, demos, or even dedicated project portals. The more people who know about your project, the more potential contributors and users you can attract.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Community engagement&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Engaging with your community is key to fostering a healthy, collaborative environment. This might involve organizing meetups, running a project blog, or even just actively participating in discussions.&lt;/p&gt;

&lt;p&gt;By following these standards, you can ensure that your repository is not just collaboration-ready, but also a place where a vibrant community can flourish! Print out &lt;a href="https://raw.githubusercontent.com/github/form-templates/refs/heads/main/.github/ISSUE_TEMPLATE/collaboration_ready_repository.pdf" rel="noopener noreferrer"&gt;this checklist&lt;/a&gt;, and use it to help guide you along each time you create (or revisit) a GitHub repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Get started&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Download &lt;a href="https://raw.githubusercontent.com/github/form-templates/refs/heads/main/.github/ISSUE_TEMPLATE/collaboration_ready_repository.pdf" rel="noopener noreferrer"&gt;this printable checklist&lt;/a&gt; that you can use to ensure that you’ve covered all aspects of making your repository collaboration-ready. Or, use this handy &lt;a href="https://github.com/github/form-templates#readme" rel="noopener noreferrer"&gt;Issue Template&lt;/a&gt; to create an updatable checklist right inside your own GitHub repository!&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%2Fyzdjfplerc6d1bs16rzd.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%2Fyzdjfplerc6d1bs16rzd.png" alt="Collaboration-ready checklist" width="791" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>collaboration</category>
      <category>repository</category>
      <category>maintainers</category>
    </item>
    <item>
      <title>Provide context to GitHub Copilot Chat</title>
      <dc:creator>Christopher Harrison</dc:creator>
      <pubDate>Tue, 10 Sep 2024 18:01:03 +0000</pubDate>
      <link>https://dev.to/github/provide-context-to-github-copilot-chat-24op</link>
      <guid>https://dev.to/github/provide-context-to-github-copilot-chat-24op</guid>
      <description>&lt;p&gt;Context is key. This is true across all forms of communication, including with generative AI assistants like GitHub Copilot. When you're interacting with GitHub Copilot Chat, there's numerous features available to you to help point Copilot in the right direction, to help it understand what you're looking for. In turn, the suggestions you'll receive will improve! Let's walk through some of the most powerful techniques to help you get the most out of the tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Highlight the code
&lt;/h2&gt;

&lt;p&gt;Let's say I'm trying to understand a block of code, improve its performance, or discover any security flaws. The first thing Copilot needs to know is the code I'm referring to. You can do this by highlighting the code in question. This will focus Copilot's attention on that block, and it will respond based on what it sees.&lt;/p&gt;

&lt;p&gt;One thing you'll notice in the Chat window after you send a message is a &lt;strong&gt;references&lt;/strong&gt; widget. If you expand this widget you'll be able to see what Copilot considered when crafting its answer. If you ever ask a question and the response doesn't relate to what you expected, check the references section.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fcp338w4ziti0nnfpvfxq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fcp338w4ziti0nnfpvfxq.gif" alt="Video of code being highlighted, asking GitHub Copilot Chat what the code does, then focusing on the references widget"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Use slash commands for quick access to common questions
&lt;/h2&gt;

&lt;p&gt;Copilot is great at tasks like explaining code, suggesting fixes, and generating tests. In fact, these are three of the most common workloads for Copilot, so much so that there's shortcuts to help you do these with minimal typing!&lt;/p&gt;

&lt;p&gt;For frequently used pieces of functionality, Copilot Chat provides slash commands. These include &lt;code&gt;/tests&lt;/code&gt; for generating unit tests or &lt;code&gt;/fix&lt;/code&gt; to have Copilot determine a fix for buggy code. You can list all the commands available by using &lt;code&gt;/help&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt; After adding a &lt;code&gt;/&lt;/code&gt; command, make sure you press Tab to activate it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Expand beyond the current file with workspace
&lt;/h2&gt;

&lt;p&gt;One thing you might notice about several of the slash commands is the addition of &lt;code&gt;@workspace&lt;/code&gt;. In a nutshell, this allows Copilot to create an index of your workspace (or project), and build a response to your prompt holistically. This is rather powerful when considering multiple files is important to providing the correct code. In the example below, we have a code block which uses a service defined in a separate file. If we use &lt;code&gt;/explain&lt;/code&gt; which includes the &lt;code&gt;@workspace&lt;/code&gt; agent we can see the updated &lt;strong&gt;references&lt;/strong&gt; widget includes not just the current file but also the source code for the service. This allows for a more robust answer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ft93983h99nygxoiy5xoq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ft93983h99nygxoiy5xoq.gif" alt="Clip of using /explain with @workspace and how the references will now include additional files"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Be specific about the important files
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;@workspace&lt;/code&gt; uses the entire workspace. But what if we know exactly what files are important to the question being asked? Let's say I'm adding some JavaScript where we need to find an element by its ID and use some CSS classes defined in a stylesheet? By using &lt;code&gt;#file&lt;/code&gt; we can point Copilot at those specific files, which we can again see in the references widget, increasing the quality of code.&lt;/p&gt;

&lt;p&gt;In my example I have an HTML file with an element with an ID of &lt;code&gt;name-display&lt;/code&gt;. I have a CSS class named &lt;code&gt;message-header&lt;/code&gt;. If I can't remember the exact names (which is pretty typical for me (and I think many developers)), I'd have to open up each file individually, explore to find the names, and then code. With &lt;code&gt;#file&lt;/code&gt; I can point Copilot at the files, then just describe what I need. Copilot will intuit the rest for me!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fvrsukdio51wsjouje7e3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fvrsukdio51wsjouje7e3.gif" alt="Video showing if you use #file you can select specific files to add to context. The text explains that we need to use the name display from #file:index.html and the message class from #file:index.css"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Iterate and build together
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot has the tagline of "Your AI pair programmer". This is the perfect description of how best to interact with Copilot. If we think about talking to a coworker, or really any other person, there's often some back and forth which takes place before we find the answer we're seeking. In the example below, I asked Copilot to generate a search function by distance, which it did. But what if we wanted this to be a range rather than equality. If we provide more information we'll get the code we're looking for.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F16dahoi4st6jtxe82w3t.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F16dahoi4st6jtxe82w3t.gif" alt="Video demonstrating chat where we start by asking for a function to search races by distance. Copilot gives us a function based on equality. We then follow up by clarifying we want to search by a range, and Copilot updates its response based on the new context."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;As I highlighted at the top, context is key to communication. The better we help Copilot understand what we're looking for and what's important the better the responses will be. Using the techniques above to help focus Copilot's attention will allow you to move that much faster and stay in the zone.&lt;/p&gt;

</description>
      <category>github</category>
      <category>githubcopilot</category>
      <category>generativeai</category>
      <category>ai</category>
    </item>
    <item>
      <title>Release Radar · August 2024: Major updates from the open source community</title>
      <dc:creator>Michelle Duke</dc:creator>
      <pubDate>Fri, 06 Sep 2024 00:32:34 +0000</pubDate>
      <link>https://dev.to/github/release-radar-august-2024-major-updates-from-the-open-source-community-54mo</link>
      <guid>https://dev.to/github/release-radar-august-2024-major-updates-from-the-open-source-community-54mo</guid>
      <description>&lt;p&gt;As winter comes to a close in the Southern Hemisphere ❄️, and summer ends in the North ☀️, developers aren't closing doors on their projects, but shipping more code. Developers are building everything from fun side hustles, to groundbreaking technology. Let's take a look at GitHub's picks for this month's Release Radar; a roundup of the open source projects that have shipped major version updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bubble Tea 1.0
&lt;/h2&gt;

&lt;p&gt;From &lt;a href="https://github.com/charmbracelet" rel="noopener noreferrer"&gt;Charm&lt;/a&gt; comes the new fun, functional, and stateful way to build interactive terminal applications. &lt;a href="https://github.com/charmbracelet/bubbletea" rel="noopener noreferrer"&gt;Bubble Tea&lt;/a&gt; is text user interface (TUI) framework built using the Go framework. Bubble Tea has been used to create all kinds of fun programs including ASCII movie art, a CLI for ChatGPT, &lt;a href="https://charm.sh/blog/terminaldotshop/" rel="noopener noreferrer"&gt;ordering coffee from the command line&lt;/a&gt;, and loads more. Congrats to the team on shipping the big 1.0 🥳.&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%2F6fz6cmy848zoxv7xfx3r.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%2F6fz6cmy848zoxv7xfx3r.gif" alt="Bubble tea command line demo" width="991" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Neo.mjs 7.0
&lt;/h2&gt;

&lt;p&gt;We've loved watching &lt;a href="https://github.com/neomjs/neo" rel="noopener noreferrer"&gt;Neo.mjs&lt;/a&gt; grow. From featuring this project in the &lt;a href="https://github.blog/open-source/release-radar-mar-2022/" rel="noopener noreferrer"&gt;March 2022 Release Radar&lt;/a&gt; and our special &lt;a href="https://github.blog/open-source/release-radar-dec-2022-jan-2023/" rel="noopener noreferrer"&gt;December 2022-January 2023 Release Radar&lt;/a&gt;. Now Neo.mjs is back with version 7.0 🎉. &lt;a href="https://neomjs.com/" rel="noopener noreferrer"&gt;Neo.mjs&lt;/a&gt; is a JavaScript Frontend Framework for building enterprise applications, with a focus on multi-threading. This latest version brings new syntax, enabling support to run multiple environments or versions of the framework on the same page. Check out &lt;a href="https://itnext.io/frontend-performance-love-story-ce92302fea5f" rel="noopener noreferrer"&gt;the Medium blog post&lt;/a&gt; for an in-depth look at Neo.mjs and some of the new features.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/2p6Sa2Zaiqk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Chips-n-Salsa 7.0
&lt;/h2&gt;

&lt;p&gt;Don't be fooled by this delicious name, it's actually an acronym:&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%2Fn1ab0mqo61hssbfwmneu.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%2Fn1ab0mqo61hssbfwmneu.png" alt="Acronym for Chips-n-Salsa reading Customizable, hybridisable, iterative, parallel, stochastic, and self-adaptive local search algorithms" width="640" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is exactly what &lt;a href="https://chips-n-salsa.cicirello.org/" rel="noopener noreferrer"&gt;Chips-n-Salsa&lt;/a&gt; is, a Java library of its acronym. We featured this project in the &lt;a href="https://github.blog/open-source/release-radar-sept-2022/" rel="noopener noreferrer"&gt;September 2022 Release Radar&lt;/a&gt; back when version 6.0 was launched. Now, with update 7.0, there are some &lt;a href="https://github.com/cicirello/Chips-n-Salsa/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;breaking changes&lt;/a&gt; including configurable source of randomness, enhancements to evolutionary computation, code improvements for enhanced performance, and various fixes to issues identified by static analysis tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  PostCSS Preset Env
&lt;/h2&gt;

&lt;p&gt;Who likes modern CSS? &lt;a href="https://preset-env.cssdb.org/" rel="noopener noreferrer"&gt;PostCSS Preset Env&lt;/a&gt; can help you convert modern CSS into readable browser code, by determining the polyfills needed based on the target browser or runtime environment. The latest version brings support for CSS nesting to align with the latest specifications, and the order of nested declarations and rules are preserved to better support mixins. This new update only supports Node.js 18 or higher. Check out the full list of changes in the &lt;a href="https://github.com/csstools/postcss-plugins/wiki/PostCSS-Preset-Env-10" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&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%2Fhyntkj0eyuu68tt57fnm.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%2Fhyntkj0eyuu68tt57fnm.png" alt="Modern CSS transforming into browser code" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PlayCanvas 2.0
&lt;/h2&gt;

&lt;p&gt;If you love building games, this one is for you. &lt;a href="https://playcanvas.com/explore" rel="noopener noreferrer"&gt;PlayCanvas&lt;/a&gt; is a WebGL and HTML5 game engine. Some of the web's most popular games have been built with PlayCanvas. The latest release has tonnes of breaking changes from removing WebGL1 support along with dozens of other legacy scripts and functions. There are also some new rendering features, materials, and blending tools. Dig into all the changes in the &lt;a href="https://github.com/playcanvas/engine/releases/tag/v2.0.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&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%2Fsmhnky26kra35ckn9kjg.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%2Fsmhnky26kra35ckn9kjg.gif" alt="Chess set rendered in PlayCanvas" width="200" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you'd love an excuse to test out PlayCanvas, keep your eyes on the GitHub &lt;a href="https://itch.io/jam/game-off-2024" rel="noopener noreferrer"&gt;Game Off 2024&lt;/a&gt; starting in November.&lt;/p&gt;

&lt;h2&gt;
  
  
  Material UI 6.0
&lt;/h2&gt;

&lt;p&gt;If you use React, then you'll want to check out &lt;a href="https://mui.com/material-ui/" rel="noopener noreferrer"&gt;Material UI&lt;/a&gt;, a component library for React that implements Google's &lt;a href="https://m2.material.io/design/introduction/" rel="noopener noreferrer"&gt;Material Design&lt;/a&gt; system. The &lt;a href="https://github.com/mui/material-ui/releases/tag/v6.0.0" rel="noopener noreferrer"&gt;latest version&lt;/a&gt; adds a new flag to generate CSS variables from serialised theme values. There are also new simpler ways to implement light/dark mode, the introduction of container queries, and new API for applying styles. Check out all the changes and examples in the &lt;a href="https://mui.com/blog/material-ui-v6-is-out/" rel="noopener noreferrer"&gt;Material UI blog&lt;/a&gt;. Congratulations on celebrating ten years since your first commit 🎉. &lt;/p&gt;

&lt;h2&gt;
  
  
  Typesense 27.0
&lt;/h2&gt;

&lt;p&gt;We all make mistakes at times, and we've all made a typo here and there at some point in our lives. &lt;a href="https://typesense.org/" rel="noopener noreferrer"&gt;Typesense&lt;/a&gt; is here to change all that, with a typo-tolerant, in-memory, fuzzy search engine. The latest release has a new mode, better typo tolerance, support for new references and synonyms, new search parameters, and AI search improvements. Check out all the breaking changes and major updates in the Typesense &lt;a href="https://github.com/typesense/typesense/releases/tag/v27.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&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%2Fvwlfliz2fdj5rxvhqaks.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%2Fvwlfliz2fdj5rxvhqaks.gif" alt="search of books with typos" width="459" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GraphQL for .NET 8.0
&lt;/h2&gt;

&lt;p&gt;This is version 8.0 of &lt;a href="https://graphql-dotnet.github.io/" rel="noopener noreferrer"&gt;GraphQL for .NET&lt;/a&gt;, not something for .NET 8.0 - confusing I know! GraphQL for .NET is an implementation of GraphQL specifically in .NET. The latest version brings dozens of changes from removing some deprecated methods, simplifying metadata build methods, better error messages and handling, refractor validation rules, and so much more. Check out all the changes in the &lt;a href="https://github.com/graphql-dotnet/graphql-dotnet/releases/tag/8.0.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  WebdriverIO 7.0
&lt;/h2&gt;

&lt;p&gt;It's important to test our code to ensure it works the way we intend. &lt;a href="https://webdriver.io/" rel="noopener noreferrer"&gt;WebdriverIO&lt;/a&gt; is a test automation framework, for e2e, unit, and component testing in the browser. It's designed for Node.js and provides support for BDD/TDD test frameworks, and can be run locally or in the cloud. The newest major release has lots of breaking changes, and a bunch of new features. Testers can use new commands, define a custom hostname for component tests, and there's support for fake timers. Check out all the major and breaking changes in the &lt;a href="https://github.com/webdriverio/webdriverio/releases/tag/v9.0.0" rel="noopener noreferrer"&gt;changelog&lt;/a&gt;.&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%2Fo40xzauvx1itk0u2mfqi.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%2Fo40xzauvx1itk0u2mfqi.png" alt="import { $, expect } from '@wdio/globals' import { render } from '@testing-library/vue' import HelloWorld from ../../src/components/HelloWorld.vue' describe('Component Testing', () =&amp;gt; {     it('increments value on click', async () =&amp;gt; {        const { getByText } = render(HelloWorld)        const btn = getByText('count is 0')        // transform into WebdriverIO element       const button = await $(btn)        // interact with element like a real user        await button.click()        await button.click()        await expect(button).toMatchInlineSnapshot(&amp;lt;br&amp;gt;
           " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  jsdom 25.0
&lt;/h2&gt;

&lt;p&gt;Here's another one for testing - jsdom, a pure JavaScript implementation of web standards. It implements the Web Hypertext Application Technology Working Group (WHATWG), HTML, and DOM standards so you can test your Node.js application. This latest version changes the prototype so the chain now stays within jsdom, avoiding potential conflicts and ensures that the behavior of objects within jsdom is consistent and predictable. &lt;a href="https://github.com/jsdom/jsdom/releases/tag/25.0.0" rel="noopener noreferrer"&gt;This version&lt;/a&gt; also requires Node.js 18 or higher. &lt;/p&gt;

&lt;h2&gt;
  
  
  Release Radar August
&lt;/h2&gt;

&lt;p&gt;Well, that’s all for this edition. Thank you to everyone who submitted a project to be featured 🙏. We loved reading about the great things you're all working on. Whether your project is featured here or not, congratulations to everyone who shipped a new release 🎉, regardless of whether you shipped your project's first version, or you launched 27.0.&lt;/p&gt;

&lt;p&gt;If you missed our last Release Radar, &lt;a href="https://dev.to/github/release-radar-july-2024-major-updates-from-the-open-source-community-446f"&gt;check out the amazing open source projects that released major version projects in July&lt;/a&gt;. We love featuring projects submitted by the community. If you're working on an open source project and shipping a major version soon, we'd love to hear from you. &lt;a href="https://github.com/github/release-radar/issues/new?assignees=MishManners&amp;amp;labels=&amp;amp;template=release-radar-request.yml&amp;amp;title=%5BRelease+Radar+Request%5D+%3Ctitle%3E" rel="noopener noreferrer"&gt;Check out the Release Radar repository, and submit your project&lt;/a&gt; to be featured in the GitHub Release Radar.&lt;/p&gt;

</description>
      <category>github</category>
      <category>community</category>
      <category>news</category>
      <category>developer</category>
    </item>
    <item>
      <title>Release Radar · July 2024: Major updates from the open source community</title>
      <dc:creator>Michelle Duke</dc:creator>
      <pubDate>Fri, 02 Aug 2024 17:00:00 +0000</pubDate>
      <link>https://dev.to/github/release-radar-july-2024-major-updates-from-the-open-source-community-446f</link>
      <guid>https://dev.to/github/release-radar-july-2024-major-updates-from-the-open-source-community-446f</guid>
      <description>&lt;p&gt;Whilst the best athletes in the world are competing, our developers are hard at work shipping updates for open source projects. If coding was an Olympic sport, these developers would be winning all sorts of medals. They are building everything from fun side hustles, to groundbreaking technology. Let's take a look at our staff picks for this month's Release Radar; a roundup of the open source projects that have shipped major version updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vitest 2.0
&lt;/h2&gt;

&lt;p&gt;I—like many others—have been using Vitest for testing frameworks. It's powered by Vite and can be used for a range of lightweight unit tests. The new version comes with simplification of the mock function, the option to run suite hooks in a stack, and the tests won't exit if global setup or config has failed. There are tonnes of new features including a new iteration of the Vitest Browser Mode, new additions, lots of bug fixes, and some breaking changes that modify the way you use Vitest for unit testing. &lt;a href=""&gt;Read up on all the changes in the Vitest changelog&lt;/a&gt;, and &lt;a href=""&gt;check the documentation for the migration guide&lt;/a&gt;.&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%2Ftannqqc3fb2y62ccby6q.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%2Ftannqqc3fb2y62ccby6q.png" alt="Vitest for JavaScript code" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  doggo 1.0
&lt;/h2&gt;

&lt;p&gt;We had to feature &lt;a href="https://doggo.mrkaran.dev/" rel="noopener noreferrer"&gt;doggo&lt;/a&gt;, &lt;a href="https://www.bluey.tv/" rel="noopener noreferrer"&gt;Bluey&lt;/a&gt; is an Australian National icon 🐶, and I'm Aussie after all. That aside, &lt;a href="https://github.com/mr-karan/doggo" rel="noopener noreferrer"&gt;Doggo&lt;/a&gt; is a modern command line DNS client written in Golang. It outputs information in a concise manner, and supports DoH, DoT, DoQ, and DNSCrypt. It's not just called doggo for the Bluey fans and dog lovers, (even though doggos are the best, sorry cat people), it's inspired by &lt;a href="https://github.com/ogham/dog/" rel="noopener noreferrer"&gt;dog&lt;/a&gt; written in Rust. Doggo is written in Go, so dog + go = doggo! Congratulations on shipping—and writing—your first DNS client 🥳.&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%2Fk0eyjit6u3945qgcld6j.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%2Fk0eyjit6u3945qgcld6j.gif" alt="Doggo install and run" width="1219" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Heroku CLI 9.0
&lt;/h2&gt;

&lt;p&gt;If you love using or building Heroku apps, and working from the command line, then the &lt;a href="https://devcenter.heroku.com/articles/heroku-cli" rel="noopener noreferrer"&gt;Heroku CLI&lt;/a&gt; is for you. It allows you to manage all your Heroku applications from the terminal. This latest update is an architecture update, now with all the core CLI commands built on the &lt;a href="https://oclif.io/" rel="noopener noreferrer"&gt;oclif platform&lt;/a&gt;; an open CLI framework. This means all the output formatting is different, and there are lots of additional flags you can use to manage your apps even more seamlessly. &lt;a href="https://github.com/heroku/cli/releases/tag/v9.0.0" rel="noopener noreferrer"&gt;Dig into all the changes in the Heroku release notes&lt;/a&gt;.&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%2Fs7x2p8pyj0ass7xxywja.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%2Fs7x2p8pyj0ass7xxywja.gif" alt="Installing Heroku CLI" width="821" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Meteor.js 3.0
&lt;/h2&gt;

&lt;p&gt;Do you need a full stack framework that simplifies web and mobile application development? Then look no further than &lt;a href="https://github.com/meteor/meteor" rel="noopener noreferrer"&gt;Meteor.js&lt;/a&gt;. It allows developers to use React, Vue, Svelte, Solid, or Blaze for the front end, with a zero-configuration setup, TypeScript support, and RPC APIs. The latest upgrade is a significant transformation of Meteor.js, that modernises the framework, and enhances its capabilities. This is achieved by integrating the latest Node.js features, moving from Fibers to native async/await, Express integration, ARM support, and package updates. &lt;a href="https://v3-docs.meteor.com/" rel="noopener noreferrer"&gt;Check out all the changes in the new Meteor.js docs&lt;/a&gt;.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/meteor" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&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%2Forganization%2Fprofile_image%2F7631%2F26544787-1db4-4cb3-b6ba-3c2d5427e42a.jpeg" alt="Meteor" width="350" height="358"&gt;
      &lt;div class="ltag__link__user__pic"&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%2Fuser%2Fprofile_image%2F562261%2Fdb6e40fb-b985-40ce-99f0-e38506013f17.png" alt="" width="631" height="827"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/meteor/meteor-3-is-officially-here-3gml" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Meteor.js 3 is officially here!&lt;/h2&gt;
      &lt;h3&gt;Denilson for Meteor ・ Jul 22 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#meteor&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#node&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  GoodJob 4.0
&lt;/h2&gt;

&lt;p&gt;I wish I got told "good job" 👍 every single day. Rather than telling you what a good job you did, &lt;a href="https://goodjob-demo.herokuapp.com/good_job/jobs" rel="noopener noreferrer"&gt;GoodJob&lt;/a&gt; provides a multithreaded, Postgres-based, Active Job backend for Ruby on Rails. This newest version resolves deferred database schema changes, and removes deprecated behaviour. It's been two years since the last major version update, and there are over 100 patch releases from 88 contributors including new batches, bulk enqueuing, labelled jobs, job throttling, dark mode for the web dashboard, and tonnes more. &lt;a href="https://github.com/bensheldon/good_job/discussions/1396" rel="noopener noreferrer"&gt;Read about them all in the GoodJob Discussion post&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaPermutationTools 6.0
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://jpt.cicirello.org/" rel="noopener noreferrer"&gt;JavaPermutationTools (JPT)&lt;/a&gt; library provides Java classes and interfaces, that enable representing and generating permutations and sequences. Computations can also be performed on these permutations and sequences. The latest changes include various improvements to implementations of algorithms for randomly sampling from arrays, as well as removing previously deprecated interfaces, and a variety of fixes to issues identified by static analysis with SpotBugs. &lt;a href="https://github.com/cicirello/JavaPermutationTools/releases/tag/v6.0.0" rel="noopener noreferrer"&gt;Read more about all the changes in the release notes&lt;/a&gt;.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/cicirello" rel="noopener noreferrer"&gt;
        cicirello
      &lt;/a&gt; / &lt;a href="https://github.com/cicirello/JavaPermutationTools" rel="noopener noreferrer"&gt;
        JavaPermutationTools
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A Java library for computation on permutations and sequences
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;JavaPermutationTools (JPT): A Java library for computation on permutations and sequences&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/cicirello/JavaPermutationTools#javapermutationtools-jpt-a-java-library-for-computation-on-permutations-and-sequences" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3ad19338dee9493cced52babc5d23df4803e9d0a1882fc338f3120d80bc66146/68747470733a2f2f6a70742e6369636972656c6c6f2e6f72672f696d616765732f6a70743634302e706e67" alt="JavaPermutationTools - A Java library for computation on permutations and sequences"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Copyright (C) 2018-2024 &lt;a href="https://www.cicirello.org/" rel="nofollow noopener noreferrer"&gt;Vincent A. Cicirello&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Website: &lt;a href="https://jpt.cicirello.org/" rel="nofollow noopener noreferrer"&gt;https://jpt.cicirello.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;API documentation: &lt;a href="https://jpt.cicirello.org/api" rel="nofollow noopener noreferrer"&gt;https://jpt.cicirello.org/api&lt;/a&gt;&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Publications About the Library&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://doi.org/10.21105/joss.00950" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/cc8d1a681bdc8fd543cdff806fbdc4d41f02dafe59ef448c467599ad490b9216/687474703a2f2f6a6f73732e7468656f6a2e6f72672f7061706572732f31302e32313130352f6a6f73732e30303935302f7374617475732e737667" alt="DOI"&gt;&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Packages and Releases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://central.sonatype.com/artifact/org.cicirello/jpt/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e1f3b0a80f844f7e319003d86e2f8cd501710b593ef0b1a09ae6375be81f0fff/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f6f72672e6369636972656c6c6f2f6a70742e7376673f6c6162656c3d4d6176656e25323043656e7472616c266c6f676f3d6170616368656d6176656e" alt="Maven Central"&gt;&lt;/a&gt; &lt;a href="https://github.com/cicirello/JavaPermutationTools/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/58c44945b8d166b605c5f3cfdd7044a6bba10c7d290c39c1ed196d2be7c9712f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6369636972656c6c6f2f4a6176615065726d75746174696f6e546f6f6c733f6c6f676f3d476974487562" alt="GitHub release (latest by date)"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Build Status&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/cicirello/JavaPermutationTools/actions/workflows/build.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/cicirello/JavaPermutationTools/actions/workflows/build.yml/badge.svg" alt="build"&gt;&lt;/a&gt; &lt;a href="https://jpt.cicirello.org/api/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://github.com/cicirello/JavaPermutationTools/actions/workflows/docs.yml/badge.svg" alt="docs"&gt;&lt;/a&gt; &lt;a href="https://github.com/cicirello/JavaPermutationTools/actions/workflows/codeql-analysis.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/cicirello/JavaPermutationTools/actions/workflows/codeql-analysis.yml/badge.svg" alt="CodeQL"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;JaCoCo Test Coverage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/cicirello/JavaPermutationTools/actions/workflows/build.yml" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fcicirello%2FJavaPermutationTools%2Fbadges%2Fjacoco.svg" alt="coverage"&gt;&lt;/a&gt; &lt;a href="https://github.com/cicirello/JavaPermutationTools/actions/workflows/build.yml" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fcicirello%2FJavaPermutationTools%2Fbadges%2Fbranches.svg" alt="branch coverage"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://snyk.io/vuln/maven%3Aorg.cicirello%3Ajpt" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f059228ab883d05d6a8c45ad10421001e641e4d87f1e0f91ae95180ca70cac15/68747470733a2f2f736e796b2d7769646765742e6865726f6b756170702e636f6d2f62616467652f6d766e2f6f72672e6369636972656c6c6f2f6a70742f62616467652e737667" alt="Snyk security score"&gt;&lt;/a&gt; &lt;a href="https://snyk.io/test/github/cicirello/JavaPermutationTools" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fad93c5cc08f9c31b6faebebdf4ec9dc4d7b7a2ca208802a015eaa180a0f049c/68747470733a2f2f736e796b2e696f2f746573742f6769746875622f6369636972656c6c6f2f4a6176615065726d75746174696f6e546f6f6c732f62616467652e737667" alt="Snyk Known Vulnerabilities"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DOI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://zenodo.org/badge/latestdoi/139182095" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ec073107bf1c4e9369908cce8f823d32df9f3d103b250e862e062d9159c1b789/68747470733a2f2f7a656e6f646f2e6f72672f62616467652f3133393138323039352e737667" alt="DOI"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Other Information&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/cicirello/JavaPermutationTools/blob/master/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1e051a206a42b46cfefa3e7d12ec37d393e14e9b5531231a5e1401ac052f69da/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6369636972656c6c6f2f4a6176615065726d75746174696f6e546f6f6c73" alt="GitHub"&gt;&lt;/a&gt; &lt;a href="https://google.github.io/styleguide/javaguide.html" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0f7d2b617883ad315f1db9dd85509473b09ecffa837789ca1e77791b5fa8412e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374796c652d476f6f676c652532304a6176612532305374796c652d696e666f726d6174696f6e616c" alt="style"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/sponsors/cicirello" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7147db8cc2dbde835961520318caeed8db52f853995e2a2f68553a28b250549a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73706f6e736f722d3330333633443f6c6f676f3d4769744875622d53706f6e736f7273266c6f676f436f6c6f723d23454134414141" alt="GitHub Sponsors"&gt;&lt;/a&gt; &lt;a href="https://liberapay.com/cicirello" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e357c7752e5590fad97e5a447ea638e9a097bbdc8f8e855cc6bb33aa3aaa2218/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c69626572617061792d4636433931353f6c6f676f3d6c6962657261706179266c6f676f436f6c6f723d626c61636b" alt="Liberapay"&gt;&lt;/a&gt; &lt;a href="https://ko-fi.com/cicirello" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3169db208bdf42a7f8624bb616c8c4db4c8e355e762431d731c6debcfff33778/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4b6f2d2d66692d4631363036313f6c6f676f3d6b6f2d6669266c6f676f436f6c6f723d7768697465" alt="Ko-Fi"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How to Cite&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;If you use this library in your research, please cite the following paper:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cicirello, Vincent A (2018). JavaPermutationTools: A Java Library of Permutation Distance Metrics. &lt;em&gt;Journal of Open Source Software&lt;/em&gt;, 3(31), 950.  &lt;a href="https://doi.org/10.21105/joss.00950" rel="nofollow noopener noreferrer"&gt;https://doi.org/10.21105/joss.00950&lt;/a&gt; .&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The JavaPermutationTools (JPT) library provides Java classes and interfaces, etc that
enable representing and generating permutations and sequences, as well as performing
computation on permutations and sequences. It includes implementations of a variety
of permutation distance metrics as well as distance metrics on sequences (i.e., Strings,
arrays, and other ordered data types).&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Java 17+&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;We currently support Java 17+. See the following table for mapping between library version
and minimum supported…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/cicirello/JavaPermutationTools" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  enioka Scan 3.0
&lt;/h2&gt;

&lt;p&gt;Do you have Android hardware? Are you using barcode scanners? Then &lt;a href="https://github.com/enioka-Haute-Couture/enioka_scan" rel="noopener noreferrer"&gt;enoika Scan&lt;/a&gt; is for you. It's an integration library for Android barcode scanners. You can write applications, without worrying about vendor lock-ins. &lt;a href="https://github.com/enioka-Haute-Couture/enioka_scan/releases/tag/3.0.0" rel="noopener noreferrer"&gt;This newest release&lt;/a&gt; focuses on improving the user experience, whilst including some new features. It's now easier to start developing with this library since the structure has been reworked into various modules, so you only need to find and work with the module you need. The team has now put together &lt;a href="https://enioka-scan.readthedocs.io/en/latest/" rel="noopener noreferrer"&gt;official documentation&lt;/a&gt; to make things easier to find.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ly 1.0
&lt;/h2&gt;

&lt;p&gt;This is one for our Linux and BSD devs. &lt;a href="https://github.com/fairyglade/ly" rel="noopener noreferrer"&gt;Ly&lt;/a&gt; is a lightweight display manager console and UI for Linux and BSD. Essentially it can give you a Matrix look and feel, so you can be than 10x developer. After some time, Ly has gone through a full Zig rewrite, with lots of issues fixed along the way. This leads to the first major release of Ly. Congratulations to Fairy Glade and the team 🙌.&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%2Fgl2alsaivc3075z6fwea.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%2Fgl2alsaivc3075z6fwea.png" alt="Ly screenshot" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PrimeVue 4.0
&lt;/h2&gt;

&lt;p&gt;If you use Vue, then check out &lt;a href="https://primevue.org/" rel="noopener noreferrer"&gt;PrimeVue&lt;/a&gt;, a rich set of UI components for all your Vue based applications. The latest update includes some fixes, updates to documentation, and more. &lt;a href="https://github.com/primefaces/primevue/releases/tag/4.0.0" rel="noopener noreferrer"&gt;This new version&lt;/a&gt; is the public release of PrimeVue 4.0.0-rc.3, so you can view all the changes in the &lt;a href="https://github.com/primefaces/primevue/releases/tag/4.0.0-rc.3" rel="noopener noreferrer"&gt;RC release notes&lt;/a&gt;.&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%2F44r01pv0g5gmx6gkjblp.jpg" 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%2F44r01pv0g5gmx6gkjblp.jpg" alt="PrimeVue UI components" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  go-github 63.0
&lt;/h2&gt;

&lt;p&gt;Google might not be open source themselves, but they do a lot for the open source community. &lt;a href="https://pkg.go.dev/github.com/google/go-github/v63/github" rel="noopener noreferrer"&gt;go-github&lt;/a&gt; is a Go library for accessing the &lt;a href="https://docs.github.com/en/rest?apiVersion=2022-11-28" rel="noopener noreferrer"&gt;GitHub API&lt;/a&gt;. GitHub API version 3.0 is available, and go-github makes use of this. The latest release changes the enterprise runner to also use ListRunnersOptions, as well as new feature to support the querying of &lt;a href="https://github.blog/changelog/2023-11-16-custom-organization-roles-are-now-ga/" rel="noopener noreferrer"&gt;custom organisation roles&lt;/a&gt;, which was released by GitHub in November last year. There are also lots of other changes, so make sure you check up on them all in the &lt;a href="https://github.com/google/go-github/releases/tag/v63.0.0" rel="noopener noreferrer"&gt;go-github changelog&lt;/a&gt;.&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%2Fxfqvduzt4ugfqm8g7cjl.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%2Fxfqvduzt4ugfqm8g7cjl.png" alt="How to use go-github" width="800" height="68"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Release Radar July
&lt;/h2&gt;

&lt;p&gt;Well, that’s all for this edition. Thank you to everyone who submitted a project to be featured 🙏. We loved reading about the great things you're all working on. Whether your project is featured here or not, congratulations to everyone who shipped a new release 🎉, regardless of whether you shipped your project's first version, or you launched 63.0.&lt;/p&gt;

&lt;p&gt;If you missed our last Release Radar, &lt;a href="https://dev.to/github/major-updates-from-the-open-source-community-release-radar-june-2024-4mf5"&gt;check out the amazing open source projects that released major version projects in June&lt;/a&gt;. We love featuring projects submitted by the community. If you're working on an open source project and shipping a major version soon, we'd love to hear from you. &lt;a href="https://github.com/github/release-radar/issues/new?assignees=MishManners&amp;amp;labels=&amp;amp;template=release-radar-request.yml&amp;amp;title=%5BRelease+Radar+Request%5D+%3Ctitle%3E" rel="noopener noreferrer"&gt;Check out the Release Radar repository, and submit your project&lt;/a&gt; to be featured in the GitHub Release Radar.&lt;/p&gt;

</description>
      <category>github</category>
      <category>community</category>
      <category>news</category>
      <category>developers</category>
    </item>
    <item>
      <title>Getting rid of those console.log('here') statements with GitHub Copilot</title>
      <dc:creator>Christopher Harrison</dc:creator>
      <pubDate>Tue, 16 Jul 2024 17:30:55 +0000</pubDate>
      <link>https://dev.to/github/cleaning-up-debug-code-with-github-copilot-4ooc</link>
      <guid>https://dev.to/github/cleaning-up-debug-code-with-github-copilot-4ooc</guid>
      <description>&lt;p&gt;There are two types of developers in the world - those who use &lt;code&gt;console.log('here!')&lt;/code&gt; for debugging and then check that code in, and... Actually, I take that back. There's one type of developer in the world. Fortunately, GitHub Copilot can help us clean that up really quickly.&lt;/p&gt;

&lt;p&gt;I've got some code with debug statements embedded. I'm also grabbing a temp variable for some data which I would normally just return directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;getAll&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Runner&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;runners&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Runners:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;runners&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;runners&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Error getting all runners:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;getById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Runner&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findUnique&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
            &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Error getting runner by id "&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;":`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;getByName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Runner&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;here&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
            &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;contains&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;sanitized_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sr"&gt;|&lt;/span&gt;&lt;span class="se"&gt;\r&lt;/span&gt;&lt;span class="sr"&gt;/g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Error getting runners by name "%s":`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;sanitized_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I want to clean all of that up. I highlight the code (which sets the context for GitHub Copilot Chat), then ask GitHub Copilot Chat "Remove any debug statements and any unnecessary variables".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhdwn4ntv9o3y4iq0pgld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhdwn4ntv9o3y4iq0pgld.png" alt="Screenshot of GitHub Copilot Chat requesting chat to Remove any debug statements and any unnecessary variables" width="722" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Within just a few moments, Copilot returns back my cleansed code which I can paste into my editor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;getAll&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Runner&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Error getting all runners:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;getById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Runner&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findUnique&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
            &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Error getting runner by id "&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;":`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;getByName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Runner&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prisma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findMany&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
            &lt;span class="na"&gt;where&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;contains&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Error getting runners by name "&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;":`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, should I learn to use the debugging capabilities of Visual Studio Code instead of relying on strategies from decades ago? Probably. :D But until that happens, I can at least cleanup everything quickly and efficiently with Copilot.&lt;/p&gt;

&lt;p&gt;I think one of the things which is often overlooked about GitHub Copilot is it's not just about creating new code, but also performing other related tasks and cleanup. When you come across a situation similar to this, where you're worried something might take a while, ask Copilot. You might just find it's able to perform the task with just a couple of quick questions. What have you been able to offload to Copilot which surprised you? Comment below!&lt;/p&gt;

</description>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>Release Radar · June 2024: Major updates from the open source community</title>
      <dc:creator>Michelle Duke</dc:creator>
      <pubDate>Fri, 05 Jul 2024 16:00:00 +0000</pubDate>
      <link>https://dev.to/github/major-updates-from-the-open-source-community-release-radar-june-2024-4mf5</link>
      <guid>https://dev.to/github/major-updates-from-the-open-source-community-release-radar-june-2024-4mf5</guid>
      <description>&lt;p&gt;We've hit the halfway point of 2024. While some are catching rays on the beach or snow on the mountains—depending on your hemisphere— developer heroes are grinding away on their open source projects, shipping major updates. These hard working coders are building everything from fun side hustles, to ground breaking technology. Let's take a look at our staff picks for this month's Release Radar; a roundup of the open source projects that have shipped major version updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple Data Analysis 3.0
&lt;/h2&gt;

&lt;p&gt;SDA—or &lt;a href="https://github.com/nshiab/simple-data-analysis" rel="noopener noreferrer"&gt;Simple Data Analysis&lt;/a&gt;—is a high-performance JavaScript library for data analysis. The new update makes it easier to use process tabular and geospatial data. It operates seamlessly in the browser and the team behind SDA used it to tackle the 1 Billion Row Challenge—impressive stuff 😮.&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%2Febj5s6zr5oij6ou17mld.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%2Febj5s6zr5oij6ou17mld.png" alt="Basic usage of SDA with code on initiating the database creating a table and invoking the methods" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FakeRest 4.0
&lt;/h2&gt;

&lt;p&gt;Want a browser library that intercepts AJAX calls to mock a REST server based on JSON data? Then look no further than &lt;a href="https://github.com/marmelab/FakeRest" rel="noopener noreferrer"&gt;FakeRest&lt;/a&gt;. The new update has a tonne of new features including added support for Mock Service Worker (MSW), string identifiers, custom ID generation, and many more abilities. Check out the &lt;a href="https://github.com/marmelab/FakeRest/releases/tag/v4.0.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt; for all the changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  React-admin 5.0
&lt;/h2&gt;

&lt;p&gt;Whenever I see the word "framework", I can't help but think of &lt;a href="https://www.youtube.com/watch?v=pgrGSnC3SKE" rel="noopener noreferrer"&gt;the Linebreakers' song "We're Gonna Build a Framework"&lt;/a&gt;. That aside, &lt;a href="https://marmelab.com/react-admin/" rel="noopener noreferrer"&gt;React-admin&lt;/a&gt; has over 25,000 users around the world. It's a single-page application framework, allowing you to build web apps running on top of REST/GraphQL APIs, using TypeScript, React and Material Design. React-admin's &lt;a href="https://github.com/marmelab/react-admin/releases/tag/v5.0.0" rel="noopener noreferrer"&gt;latest update&lt;/a&gt; brings refined lists and forms, dependency update, and easier application initialisation.&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%2Fva22y3pyfbfzdjihyg08.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%2Fva22y3pyfbfzdjihyg08.gif" alt="overview of react admin" width="720" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Goyave 5.0
&lt;/h2&gt;

&lt;p&gt;More frameworks! We all love frameworks. This one is an opinionated all-in-one Golang web framework. &lt;a href="https://goyave.dev/" rel="noopener noreferrer"&gt;Goyave&lt;/a&gt; is focused on REST APIs, with emphasis on code reliability, maintainability and developer experience. With the newest version, Goyave has been redesigned and rewritten from the ground up. It now takes advantage of the modern language features. Read up on all the changes in their &lt;a href="https://github.com/go-goyave/goyave/releases/tag/v5.0.0" rel="noopener noreferrer"&gt;extensive release notes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keuss 2.0
&lt;/h2&gt;

&lt;p&gt;A serverless, persistent and highly-available queue middleware. That's what &lt;a href="https://github.com/pepmartinez/keuss" rel="noopener noreferrer"&gt;Keuss&lt;/a&gt; is. It's built on Node.js, supports delays/schedule, and currently supports MongoDB, Redis and PostgreSQL. The latest release adds a new major backend, allowing Keuss to support queues over PostgreSQL databases. Check out the &lt;a href="https://pepmartinez.github.io/keuss/docs/changelog/" rel="noopener noreferrer"&gt;changelog for all the updates&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Node-RED 4.0
&lt;/h2&gt;

&lt;p&gt;Want a low code application for event-driven applications? Then &lt;a href="https://nodered.org/" rel="noopener noreferrer"&gt;Node-RED&lt;/a&gt; is your go to. The new update brings a breaking change, with Node-RED now requiring Node 18.x or later. The team have added new features and updated dependencies to the editor, and there are lots of fixes within the editor. Check out the &lt;a href="https://github.com/node-red/node-red/releases/tag/4.0.0" rel="noopener noreferrer"&gt;release notes for all the details&lt;/a&gt;.&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%2F2qmnsbpfmhmolwrknwl5.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%2F2qmnsbpfmhmolwrknwl5.png" alt="Dashboard for Node-RED" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  DuckDB 1.0
&lt;/h2&gt;

&lt;p&gt;What do ducks and databases have in common? They are both fast, reliable, and portable. Okay, maybe ducks aren't like that, but &lt;a href="http://duckdb.org/" rel="noopener noreferrer"&gt;DuckDB&lt;/a&gt; is 🦆. This database provides a rich SQL dialect, with support for arbitrary and nested correlated subqueries, window functions, collations, complex types—such as arrays, structs, and maps—and several extensions. This &lt;a href="https://github.com/duckdb/duckdb" rel="noopener noreferrer"&gt;first major release&lt;/a&gt; is called "Nivis", after the sadly non-existent Snow Duck, that is apparently known for its stability. Congrats to the team on shipping your very first 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%2Fhw5eopejv9c5ze8x3een.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%2Fhw5eopejv9c5ze8x3een.png" alt="DuckDB demo" width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PouchDB 9.0
&lt;/h2&gt;

&lt;p&gt;Speaking of databases, this one is pocket-sized. &lt;a href="https://pouchdb.com/" rel="noopener noreferrer"&gt;PouchDB&lt;/a&gt; is a JavaScript database designed to run in the browser. This latest release includes over 202 merged PRs 😮, and comes with improved stability and performance. There's the ability to streamline the automated test suites and improve in-browser testing. &lt;a href="https://github.com/pouchdb/pouchdb/releases/tag/9.0.0" rel="noopener noreferrer"&gt;Read up on the major changes in the changelog&lt;/a&gt;.&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%2Frligq7u7bz4o5wo5jpyl.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%2Frligq7u7bz4o5wo5jpyl.png" alt="PouchDB" width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  EasyExcel 4.0
&lt;/h2&gt;

&lt;p&gt;This Java-based tool is built by the team at Alibaba and is used for handling Excel files. &lt;a href="https://github.com/alibaba/easyexcel" rel="noopener noreferrer"&gt;EasyExcel&lt;/a&gt; can process them quickly, and can handle large file sizes. The latest release includes upgrades for poi, commons-csv, slf4j-api, and ehcache. There is now added support for jdk21. Check out all the changes in the &lt;a href="https://github.com/alibaba/easyexcel/releases/tag/v4.0.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Roast
&lt;/h2&gt;

&lt;p&gt;It's not an official release, but we felt this one deserved an honourable mention. &lt;a href="https://github.com/Haimantika" rel="noopener noreferrer"&gt;Haimantika&lt;/a&gt; built this &lt;a href="https://github.com/Haimantika/GitHub-roast" rel="noopener noreferrer"&gt;super fun&lt;/a&gt;—and frankly rather brutal—app that will take your GitHub username, repositories, and follower count and roast you 🔥. It's a fun way to interact with others, with lots of people sharing their &lt;a href="https://x.com/search?q=github%20roast&amp;amp;src=typed_query" rel="noopener noreferrer"&gt;roasts on social media&lt;/a&gt;. Built with Open AI and the GitHub API, &lt;a href="https://github-roast.up.railway.app/home" rel="noopener noreferrer"&gt;check it out online&lt;/a&gt; and have yourself roasted.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1807670495208235290-216" src="https://platform.twitter.com/embed/Tweet.html?id=1807670495208235290"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1807670495208235290-216');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1807670495208235290&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  Release Radar June
&lt;/h2&gt;

&lt;p&gt;Well, that’s all for this edition. Thank you to everyone who submitted a project to be featured 🙏. We loved reading about the great things you're all working on. Whether your project was featured here or not, congratulations to everyone who shipped a new release 🎉, regardless of whether you shipped your project's first version, or you launched 9.0.&lt;/p&gt;

&lt;p&gt;If you missed our last Release Radar, check out the amazing &lt;a href="https://dev.to/github/release-radar-may-2024-edition-major-updates-from-the-open-source-community-4oj3"&gt;open source projects that released major version projects in May&lt;/a&gt;. We love featuring projects submitted by the community. If you're working on an open source project and shipping a major version soon, we'd love to hear from you. Check out the Release Radar repository, and &lt;a href="https://github.com/github/release-radar/issues/new?assignees=MishManners&amp;amp;labels=&amp;amp;template=release-radar-request.yml&amp;amp;title=%5BRelease+Radar+Request%5D+%3Ctitle%3E" rel="noopener noreferrer"&gt;submit your project to be featured in the GitHub Release Radar&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>github</category>
      <category>community</category>
      <category>news</category>
      <category>developers</category>
    </item>
    <item>
      <title>Release Radar · May 2024: Major updates from the open source community</title>
      <dc:creator>Michelle Duke</dc:creator>
      <pubDate>Thu, 06 Jun 2024 23:56:26 +0000</pubDate>
      <link>https://dev.to/github/release-radar-may-2024-edition-major-updates-from-the-open-source-community-4oj3</link>
      <guid>https://dev.to/github/release-radar-may-2024-edition-major-updates-from-the-open-source-community-4oj3</guid>
      <description>&lt;p&gt;While the Northern Hemisphere springs into a fresh era 🌷, the Southern says goodbye to Fall (or Autumn as we say Down Under 🍂). As the seasons change, our developers are changing, updating, and shipping their projects. There are a tonne of great projects featured here, everything from weekend hobbies, to world changing technology. Let's take a look at our staff picks for this month's Release Radar; a roundup of the open source projects that have shipped major version updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Angular 18.0
&lt;/h2&gt;

&lt;p&gt;Those building mobile and desktop web applications might be familiar with &lt;a href="https://github.com/angular/angular" rel="noopener noreferrer"&gt;Angular&lt;/a&gt;, a development platform for building using TypeScript, JavaScript, and other languages. The latest release brings a new home for &lt;a href="https://angular.dev/" rel="noopener noreferrer"&gt;Angular Developers with their new website&lt;/a&gt;, experimental support for zoneless change detection, lots of server-side rendering improvements, more stable controls, and lots more. Check out all the changes and what these mean for Angular devs on the &lt;a href="https://blog.angular.dev/angular-v18-is-now-available-e79d5ac0affe" rel="noopener noreferrer"&gt;Angular blog post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/DK8M-ZFjaMw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Web Check 1.0
&lt;/h2&gt;

&lt;p&gt;Looking for comprehensive, on-demand intelligence for any website? Look no further than &lt;a href="https://github.com/Lissy93/web-check" rel="noopener noreferrer"&gt;Web Check&lt;/a&gt;. With &lt;a href="https://web-check.xyz/" rel="noopener noreferrer"&gt;Web Check&lt;/a&gt;, you can see insights for any website, uncover potential attack vectors, analyse server architecture, view security configurations, and see what technologies drive a particular site. Congrats on shipping out the first major 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%2Fix32ywonmy636hp708cu.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%2Fix32ywonmy636hp708cu.gif" alt="web check demo" width="760" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Skywalking 10.0
&lt;/h2&gt;

&lt;p&gt;Are you working on microservices, cloud native, and container-based architectures? Then you need to check out &lt;a href="https://skywalking.apache.org/" rel="noopener noreferrer"&gt;Apache Skywalking&lt;/a&gt;. It's an Application Performance Monitoring (APM) system, that provides monitoring, tracing, and diagnosing capabilities for distributed systems in Cloud Native architectures. This latest update has hundreds of changes including support for Java 21 runtime, new functions and parameters, the addition of Golang as a supported language for AMQP, Kafka, RocketMQ, and Pulsar, support for multiple labels in metrics, and tonnes more. &lt;a href="https://github.com/apache/skywalking/releases/tag/v10.0.0" rel="noopener noreferrer"&gt;Check out all changes in the very comprehensive release notes&lt;/a&gt;. All the Apache Skywalking metrics are available via Grafana.&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%2Fcifdpr10n92vwmvslcmx.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%2Fcifdpr10n92vwmvslcmx.png" alt="Apache skywalking metrics through grafana" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Grafana 11.0
&lt;/h2&gt;

&lt;p&gt;Speaking of metrics and Grafana, this popular project gets a major update too. As shown in the image above, Grafana is a data visualisation and composable observability platform. With Grafana you can query, visualise, alert on, and understand your metrics wherever that data may sit. The latest update adds lots of new features and enhancements such as a slightly refreshed UI, reducing the set of fields that could trigger an alert state change, the removal of Loki's API restrictions on resource calls, and lots more. Check out all the &lt;a href="https://github.com/grafana/grafana/releases/tag/v11.0.0" rel="noopener noreferrer"&gt;changes in the changelog&lt;/a&gt;.&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%2Fvforzmk3ixth9dtlyxmo.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%2Fvforzmk3ixth9dtlyxmo.png" alt="Grafana dashboard" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tasmota 14.0
&lt;/h2&gt;

&lt;p&gt;Firmware and embedded systems engineers will love this project; Tasmota is firmware for ESP8266 and ESP32 based devices that allows you to more easily configure your devices. The catch with this new update is that direct migration for versions earlier than 8.1 are no longer supported. If you're using anything higher, you can directly migrate to this latest version. Tasmota 14.0 adds a bunch of new commands, support for new hardware such as temperature and pressure sensors, and lots more. Read up on all the new devices, modules, and how to migrate in the &lt;a href="https://github.com/arendst/Tasmota/releases/tag/v14.0.0" rel="noopener noreferrer"&gt;Tasmota release notes&lt;/a&gt;.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/arendst" rel="noopener noreferrer"&gt;
        arendst
      &lt;/a&gt; / &lt;a href="https://github.com/arendst/Tasmota" rel="noopener noreferrer"&gt;
        Tasmota
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/tools/logo/TASMOTA_FullLogo_Vector.svg#gh-light-mode-only"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ftools%2Flogo%2FTASMOTA_FullLogo_Vector.svg%23gh-light-mode-only" alt="Tasmota logo"&gt;&lt;/a&gt;&lt;a rel="noopener noreferrer" href="https://github.com/tools/logo/TASMOTA_FullLogo_Vector_White.svg#gh-dark-mode-only"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ftools%2Flogo%2FTASMOTA_FullLogo_Vector_White.svg%23gh-dark-mode-only" alt="Tasmota logo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Alternative firmware for &lt;a href="https://en.wikipedia.org/wiki/ESP8266" rel="nofollow noopener noreferrer"&gt;ESP8266&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/ESP32" rel="nofollow noopener noreferrer"&gt;ESP32&lt;/a&gt; based devices with &lt;strong&gt;easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX&lt;/strong&gt;
&lt;em&gt;Written for PlatformIO.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ota.tasmota.com/tasmota/release" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4c76901aa5fba12349f90038e1e0f0e5a9f67c4d40f73a3eed1e3c123ed0e715/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6172656e6473742f5461736d6f74612e737667" alt="GitHub version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arendst/Tasmota/releases/latest" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a21a97afb094cce549e6d69295c6701a5035a25d5d1b123cbd26a4e5a350748f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6172656e6473742f5461736d6f74612f746f74616c2e737667" alt="GitHub download"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arendst/Tasmota/LICENSE.txt" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a53073526dae9d2276ef59e02618b4f40a644ad73321f3c6a1bea75673704364/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6172656e6473742f5461736d6f74612e737667" alt="License"&gt;&lt;/a&gt;
&lt;a href="https://discord.gg/Ks2Kzd4" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/cd8c6f52c9f0f7d0c1ce21dd28aab6e50ec6ce6dff7092e512b3eac9dc558e4e/68747470733a2f2f696d672e736869656c64732e696f2f646973636f72642f3437393338393136373338323639313836332e7376673f6c6f676f3d646973636f7264266c6f676f436f6c6f723d776869746526636f6c6f723d353836354632266c6162656c3d446973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://gitpod.io/#https://github.com/arendst/Tasmota" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e4e3e01aa9d0e6c58de411253ad5ffd73074f989b9363a8f01d64fb62d09a662/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476974706f642d52656164792d2d746f2d2d436f64652d626c75653f6c6f676f3d676974706f64" alt="Gitpod Ready-to-Code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In light of current events we like to support the people behind &lt;em&gt;PlatformIO Project&lt;/em&gt;, especially Ivan Kravets, and wish them the strength to help stop the war. See &lt;a href="https://community.platformio.org/t/platformio-is-ukrainian-project-please-help-us-stop-the-war/26330" rel="nofollow noopener noreferrer"&gt;platformio-is-ukrainian-project-please-help-us-stop-the-war&lt;/a&gt; for what you can do.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Easy install&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Easy initial installation of Tasmota can be performed using the &lt;a href="https://tasmota.github.io/install/" rel="nofollow noopener noreferrer"&gt;Tasmota WebInstaller&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you like &lt;strong&gt;Tasmota&lt;/strong&gt;, give it a star, or fork it and contribute!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/arendst/Tasmota/stargazers" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4f87b81a26cfecb46f6a5b67312b57343d6b6092a51d9bbc4971efb2f9969760/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6172656e6473742f5461736d6f74612e7376673f7374796c653d736f6369616c266c6162656c3d53746172" alt="GitHub stars"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arendst/Tasmota/network" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/080179b1fbaec978f3e209601fb6c9c9ae618d6c91825e6e760507a4f5dea8bf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f6172656e6473742f5461736d6f74612e7376673f7374796c653d736f6369616c266c6162656c3d466f726b" alt="GitHub forks"&gt;&lt;/a&gt;
&lt;a href="https://paypal.me/tasmota" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a5e55f863f86bc2c44709e4f7c343975dd34d4e2def4e6e24b7edf9768de67c6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f6e6174652d50617950616c2d626c75652e737667" alt="donate"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See &lt;a href="https://github.com/arendst/Tasmota/blob/master/RELEASENOTES.md" rel="noopener noreferrer"&gt;RELEASENOTES.md&lt;/a&gt; for release information.&lt;/p&gt;
&lt;p&gt;Firmware binaries can be downloaded from &lt;a href="http://ota.tasmota.com/tasmota/release/" rel="nofollow noopener noreferrer"&gt;http://ota.tasmota.com/tasmota/release/&lt;/a&gt; or &lt;a href="http://ota.tasmota.com/tasmota32/release/" rel="nofollow noopener noreferrer"&gt;http://ota.tasmota.com/tasmota32/release/&lt;/a&gt; for ESP32 binaries.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Development&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/arendst/Tasmota" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fa4e7e8ccc23831eafa1747228a3f81f55917f605da6bf290c9f9a7d336875f5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646576656c6f706d656e7425323076657273696f6e2d7631352e312e782e782d626c75652e737667" alt="Dev Version"&gt;&lt;/a&gt;
&lt;a href="http://ota.tasmota.com/tasmota/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/270425028f5c247ed2c9ca38e8498f609287ac74cabb7bc1676d1f39a5be00e8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f776e6c6f61642d646576656c6f706d656e742d79656c6c6f772e737667" alt="Download Dev"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arendst/Tasmota/actions/workflows/build_all_the_things.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/arendst/Tasmota/actions/workflows/build_all_the_things.yml/badge.svg" alt="Tasmota CI"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arendst/Tasmota/actions/workflows/Tasmota_build_devel.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/arendst/Tasmota/actions/workflows/Tasmota_build_devel.yml/badge.svg" alt="Build_development"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See &lt;a href="https://github.com/arendst/Tasmota/CHANGELOG.md" rel="noopener noreferrer"&gt;CHANGELOG.md&lt;/a&gt; for detailed change information.&lt;/p&gt;
&lt;p&gt;Unless your Tasmota powered device exhibits a problem or lacks a feature that you need, leave your device alone - it works so don’t make unnecessary changes…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/arendst/Tasmota" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  croc 10.0
&lt;/h2&gt;

&lt;p&gt;Do you have more than one computer? Ever had 'fun' trying to get files from one computer to the other? &lt;a href="https://github.com/schollz/croc" rel="noopener noreferrer"&gt;Croc&lt;/a&gt; is here to save you. This CLI tool  allows any two computers to securely transfer files and folders. You can transfer multiple files, including cross-platform (Windows, Linux, Mac), and you can use a proxy. The newest version of &lt;a href="https://schollz.com/tinker/croc6/" rel="noopener noreferrer"&gt;croc&lt;/a&gt; has a few of the usual 🐛 fixes and has a new way to define ports.&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%2Fxrebuhq3wv6ubz44srxj.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%2Fxrebuhq3wv6ubz44srxj.png" alt="Croc file transfers" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ρμ 4.0
&lt;/h2&gt;

&lt;p&gt;Pronounced rho mu, &lt;a href="https://github.com/cicirello/rho-mu" rel="noopener noreferrer"&gt;ρμ&lt;/a&gt; is a Java library of randomization enhancements and other math utilities. In this latest update, &lt;a href="https://rho-mu.cicirello.org/" rel="noopener noreferrer"&gt;ρμ&lt;/a&gt; makes improvements to the generation of random pairs and triples of distinct integers, adds support for generating streams of random pairs and triples of distinct integers, adds methods for efficiently shuffling arrays and lists, removes a couple of previously deprecated classes, and includes some improvements to internal library code. Check out the &lt;a href="https://github.com/cicirello/rho-mu/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; for all the updates.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/cicirello" rel="noopener noreferrer"&gt;
        cicirello
      &lt;/a&gt; / &lt;a href="https://github.com/cicirello/rho-mu" rel="noopener noreferrer"&gt;
        rho-mu
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      ρμ - a Java library of Randomization enHancements and Other Math Utilities
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;ρμ - Java library of Randomization enHancements and Other Math Utilities&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/396c6b747c119e654ef3d327052feccb9bad7c47489c5cad9518bbf1fadb5d91/68747470733a2f2f72686f2d6d752e6369636972656c6c6f2e6f72672f696d616765732f72686f2d6d752e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/396c6b747c119e654ef3d327052feccb9bad7c47489c5cad9518bbf1fadb5d91/68747470733a2f2f72686f2d6d752e6369636972656c6c6f2e6f72672f696d616765732f72686f2d6d752e706e67" width="640" alt="ρμ - Java library of Randomization enHancements and Other Math Utilities"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Copyright (C) 2017-2024 &lt;a href="https://www.cicirello.org/" rel="nofollow noopener noreferrer"&gt;Vincent A. Cicirello&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Website: &lt;a href="https://rho-mu.cicirello.org/" rel="nofollow noopener noreferrer"&gt;https://rho-mu.cicirello.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;API documentation: &lt;a href="https://rho-mu.cicirello.org/api/" rel="nofollow noopener noreferrer"&gt;https://rho-mu.cicirello.org/api/&lt;/a&gt;&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Publications About the Library&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://doi.org/10.21105/joss.04663" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8940ecb66698e1c1647ade6e95de7ae547149ddd5f0f8249720af8ff225acecc/68747470733a2f2f6a6f73732e7468656f6a2e6f72672f7061706572732f31302e32313130352f6a6f73732e30343636332f7374617475732e737667" alt="DOI"&gt;&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Packages and Releases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://central.sonatype.com/artifact/org.cicirello/rho-mu/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/48e6b449851905839139004570d0e39d7d733e08427ef958324127feebb30713/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f6f72672e6369636972656c6c6f2f72686f2d6d752e7376673f6c6162656c3d4d6176656e25323043656e7472616c266c6f676f3d6170616368656d6176656e" alt="Maven Central"&gt;&lt;/a&gt; &lt;a href="https://github.com/cicirello/rho-mu/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c53414d81d53efa6b3057e83d75ab50da3890887bdb00c4f86fedeefa6e6a7db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6369636972656c6c6f2f72686f2d6d753f6c6f676f3d476974487562" alt="GitHub release (latest by date)"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Build Status&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/cicirello/rho-mu/actions/workflows/build.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/cicirello/rho-mu/workflows/build/badge.svg" alt="build"&gt;&lt;/a&gt; &lt;a href="https://rho-mu.cicirello.org/api/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://github.com/cicirello/rho-mu/workflows/docs/badge.svg" alt="docs"&gt;&lt;/a&gt; &lt;a href="https://github.com/cicirello/rho-mu/actions/workflows/codeql-analysis.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/cicirello/rho-mu/actions/workflows/codeql-analysis.yml/badge.svg" alt="CodeQL"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;JaCoCo Test Coverage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/cicirello/rho-mu/actions/workflows/build.yml" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fcicirello%2Frho-mu%2Fbadges%2Fjacoco.svg" alt="coverage"&gt;&lt;/a&gt; &lt;a href="https://github.com/cicirello/rho-mu/actions/workflows/build.yml" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fcicirello%2Frho-mu%2Fraw%2Fbadges%2Fbranches.svg" alt="branches coverage"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://snyk.io/vuln/maven%3Aorg.cicirello%3Arho-mu" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/898570f263faed9044772eb999a0cfa94753ffd6069fdad384765cf60e05d1a1/68747470733a2f2f736e796b2d7769646765742e6865726f6b756170702e636f6d2f62616467652f6d766e2f6f72672e6369636972656c6c6f2f72686f2d6d752f62616467652e737667" alt="Snyk security score"&gt;&lt;/a&gt; &lt;a href="https://snyk.io/test/github/cicirello/rho-mu" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8769bb9df2590f6909bda9030ef44cd44ae38fb8a6471d5f18bbac6aaf08c14d/68747470733a2f2f736e796b2e696f2f746573742f6769746875622f6369636972656c6c6f2f72686f2d6d752f62616467652e737667" alt="Snyk Known Vulnerabilities"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DOI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://zenodo.org/badge/latestdoi/408560166" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/46b74400108c2a6769a04f67f992da388db97cf55663bfa81f7cab75c2a9094a/68747470733a2f2f7a656e6f646f2e6f72672f62616467652f3430383536303136362e737667" alt="DOI"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Other Information&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/cicirello/rho-mu/blob/main/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d8076ee87a26082dd34528cf30339fa69d3e47a387d27c9061ba295caccab330/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6369636972656c6c6f2f72686f2d6d75" alt="GitHub"&gt;&lt;/a&gt; &lt;a href="https://google.github.io/styleguide/javaguide.html" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0f7d2b617883ad315f1db9dd85509473b09ecffa837789ca1e77791b5fa8412e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374796c652d476f6f676c652532304a6176612532305374796c652d696e666f726d6174696f6e616c" alt="style"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/sponsors/cicirello" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7147db8cc2dbde835961520318caeed8db52f853995e2a2f68553a28b250549a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73706f6e736f722d3330333633443f6c6f676f3d4769744875622d53706f6e736f7273266c6f676f436f6c6f723d23454134414141" alt="GitHub Sponsors"&gt;&lt;/a&gt; &lt;a href="https://liberapay.com/cicirello" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e357c7752e5590fad97e5a447ea638e9a097bbdc8f8e855cc6bb33aa3aaa2218/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c69626572617061792d4636433931353f6c6f676f3d6c6962657261706179266c6f676f436f6c6f723d626c61636b" alt="Liberapay"&gt;&lt;/a&gt; &lt;a href="https://ko-fi.com/cicirello" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3169db208bdf42a7f8624bb616c8c4db4c8e355e762431d731c6debcfff33778/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4b6f2d2d66692d4631363036313f6c6f676f3d6b6f2d6669266c6f676f436f6c6f723d7768697465" alt="Ko-Fi"&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How to Cite&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;If you use this library in your research, please cite the following paper:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cicirello, V. A., (2022). ρμ: A Java library of randomization enhancements and other math utilities. &lt;em&gt;Journal of Open Source Software&lt;/em&gt;, 7(76), 4663, &lt;a href="https://doi.org/10.21105/joss.04663" rel="nofollow noopener noreferrer"&gt;https://doi.org/10.21105/joss.04663&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;ρμ is a Java library of Randomization enHancements and Other Math Utilities
(rho mu). It includes implementations of various algorithms for efficiently
randomly sampling combinations of indexes into arrays and other sequential
structures. It also includes efficient implementations of random number generation from
distributions other than uniform, such as Gaussian, Cauchy, etc. Additionally, it
includes implementations of other math functions that are either needed by the randomization
utilities…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/cicirello/rho-mu" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Social Switch 1.0
&lt;/h2&gt;

&lt;p&gt;Have you ever tried to share a social media post, and your friend on the other end can't see it because they don't have an account for that particular platform? Or maybe you want to look at a post and remain anonymous, &lt;a href="https://github.com/claromes/socialswitch" rel="noopener noreferrer"&gt;Social Switch&lt;/a&gt; is here for you. Available as a Chrome, Firefox, or Firefox for Android extension, Social Switch allows you to share social media links from Instagram and TikTok URLs and users don't need to reveal their identity or log into their accounts. Congrats to the team on shipping your very first 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%2F09i03azekd01bmkmjhlz.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%2F09i03azekd01bmkmjhlz.png" alt="Social switch dropdown showing the extension working in a browser" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Simple Icons 12.0
&lt;/h2&gt;

&lt;p&gt;Having &lt;a href="https://github.blog/2020-12-07-release-radar-dec-2020/" rel="noopener noreferrer"&gt;featured Simple Icons in the past&lt;/a&gt;, this project continues to make updates. &lt;a href="https://github.com/simple-icons/simple-icons" rel="noopener noreferrer"&gt;Simple Icons&lt;/a&gt; now has over 3100 free SVG icons for all your favourite brands. The latest update provides more than a dozen new icons, and some revamped icons too. Check them all out and download them for your projects via the &lt;a href="https://simpleicons.org/" rel="noopener noreferrer"&gt;Simple Icons website&lt;/a&gt;.&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%2Fz8ruy1qsalrgt5dcbxob.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%2Fz8ruy1qsalrgt5dcbxob.png" alt="Simple icons showing a small selection of the icons on their website" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NetBox 4.0
&lt;/h2&gt;

&lt;p&gt;If you're a network engineer, then you need to know about &lt;a href="https://netboxlabs.com/oss/netbox/" rel="noopener noreferrer"&gt;NetBox&lt;/a&gt;. It exists to empower you, and provides an accessible data model for all things networked. There's a single robust user interface and programmable APIs for everything from cable maps to device configurations. This latest update changes the format for GraphQL queries, a completely refreshed UI, support for dynamic REST API fields, and lots more. &lt;a href="https://github.com/netbox-community/netbox/releases/tag/v4.0.0" rel="noopener noreferrer"&gt;Read up on all the breaking changes and dig into the migration guide&lt;/a&gt; to ensure you're up to date and compatible.&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%2F20zb64qis0spnu9xqeh0.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%2F20zb64qis0spnu9xqeh0.png" alt="Netbox UI dashboard" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Release Radar May 2024
&lt;/h2&gt;

&lt;p&gt;Well, that’s all for this edition. Thank you to everyone who submitted a project to be featured 🙏. We loved reading about the great things you're all working on. Whether your project was featured here or not, congratulations to everyone who shipped a new release 🎉, regardless of whether you shipped your project's first version, or you launched 18.0.&lt;/p&gt;

&lt;p&gt;If you missed our last Release Radar, check out the amazing open source projects that released major version projects in &lt;a href="https://dev.to/github/release-radar-april-2024-edition-major-updates-from-the-open-source-community-37k1"&gt;April&lt;/a&gt;. We love featuring projects submitted by the community. If you're working on an open source project and shipping a major version soon, we'd love to hear from you. Check out the &lt;a href="https://releaseradar.github.com/" rel="noopener noreferrer"&gt;Release Radar repository&lt;/a&gt;, and &lt;a href="https://github.com/github/release-radar/issues/new?assignees=MishManners&amp;amp;labels=&amp;amp;template=release-radar-request.yml&amp;amp;title=%5BRelease+Radar+Request%5D+%3Ctitle%3E" rel="noopener noreferrer"&gt;submit your project to be featured in the GitHub Release Radar&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>github</category>
      <category>community</category>
      <category>news</category>
      <category>developers</category>
    </item>
    <item>
      <title>Gamedev.js Open Source Challenge Winners 🏆</title>
      <dc:creator>Lee Reilly</dc:creator>
      <pubDate>Thu, 16 May 2024 23:54:14 +0000</pubDate>
      <link>https://dev.to/github/gamedevjs-open-source-challenge-winners-5076</link>
      <guid>https://dev.to/github/gamedevjs-open-source-challenge-winners-5076</guid>
      <description>&lt;p&gt;The &lt;a href="https://gamedevjs.com/jam/2024/"&gt;Gamedev.js 2024 game jam&lt;/a&gt; just wrapped up, where participants had 13 days to build HTML5 games based on the theme &lt;strong&gt;POWER&lt;/strong&gt; ⚡&lt;/p&gt;

&lt;p&gt;This year we sponsored the "Open Source Challenge" - encouraging participants to share the source code (with a license of their choosing).&lt;/p&gt;

&lt;p&gt;Here are the top five entries as voted on by all of the participants -  ranging from strategic mazes and competitive puck battles to power management in outer space. Enjoy!&lt;/p&gt;

&lt;h2&gt;
  
  
  Mech Motion 🥇
&lt;/h2&gt;

&lt;p&gt;&lt;sup&gt;by @Chocobois&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://golen.itch.io/mech-motion"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiw4qgokpmu537xtbcyx3.png" alt="Screenshot showing Mech Motion in action" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://golen.itch.io/mech-motion"&gt;&lt;code&gt;Play&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://github.com/Chocobois/Power/"&gt;&lt;code&gt;View source&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://itch.io/jam/gamedevjs-2024/rate/2643307"&gt;&lt;code&gt;Read reviews&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://golen.itch.io/mech-motion"&gt;&lt;em&gt;Mech Motion&lt;/em&gt;&lt;/a&gt; powers up your strategic circuits, tasking you to maneuver a robotic helper through mazes using cleverly coded movement cards. Get charged up to collect all the energy cells before your bot runs out of juice in this electrifying puzzle challenge!&lt;/p&gt;

&lt;h2&gt;
  
  
  Puckit! 🥈
&lt;/h2&gt;

&lt;p&gt;&lt;sup&gt;by &lt;a class="mentioned-user" href="https://dev.to/johnedvard"&gt;@johnedvard&lt;/a&gt;&lt;sup&gt;&lt;/sup&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reitgames.itch.io/puckit"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcsew941kl3hzebs8rkf6.png" alt="Screenshot showing Puckit in action" width="800" height="1332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reitgames.itch.io/puckit"&gt;&lt;code&gt;Play&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://github.com/johnedvard/gamedevjs2024"&gt;&lt;code&gt;View source&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://itch.io/jam/gamedevjs-2024/rate/2668409"&gt;&lt;code&gt;Read reviews&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Charge into &lt;a href="https://reitgames.itch.io/puckit"&gt;&lt;em&gt;Puckit!&lt;/em&gt;&lt;/a&gt; where you power up your puck to strategically knock pint-sized pawns into pits. Harness your finger finesse or masterful mouse moves to score, shock, and showcase your prowess in this dynamic duel—just don’t fall into your own trap!&lt;/p&gt;

&lt;h2&gt;
  
  
  Gleep Gym 🥉
&lt;/h2&gt;

&lt;p&gt;&lt;sup&gt;By @MiamoAlex, @Rusalka, @mo_01, @sukai909&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://miamoalex.itch.io/gleep-gym-club"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2e25wb6wqjdte54hl4od.png" alt="Screenshot showing Gleep Gym in action" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://miamoalex.itch.io/gleep-gym-club"&gt;&lt;code&gt;Play&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://github.com/MiamoAlex/miamo-gamdevjs-2024"&gt;&lt;code&gt;View source&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://itch.io/jam/gamedevjs-2024/rate/2642954"&gt;&lt;code&gt;Read reviews&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jump into &lt;a href="https://miamoalex.itch.io/gleep-gym-club"&gt;&lt;em&gt;Gleep Gym&lt;/em&gt;&lt;/a&gt;, where you'll flex your power levels against quirky gym members in a flash of nostalgic, Warioware-esque mini-games. Are you buff enough to conquer their challenges, or will you need a power shake-up in this electrifying, seizure-aware sprint to the stars?&lt;/p&gt;

&lt;h2&gt;
  
  
  IONCLAD 🏅
&lt;/h2&gt;

&lt;p&gt;&lt;sup&gt;by @BethFromAbove, @jonathan-rose, @Kimbsy&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bethfromabove.itch.io/ionclad"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07ftlh62gl5ryqxohlz7.jpeg" alt="Screenshot showing IONCLAD in action" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bethfromabove.itch.io/ionclad"&gt;&lt;code&gt;Play&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://github.com/jonathan-rose/ionic"&gt;&lt;code&gt;View source&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://itch.io/jam/gamedevjs-2024/rate/2669427"&gt;&lt;code&gt;Read reviews&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Blast into &lt;a href="https://bethfromabove.itch.io/ionclad"&gt;&lt;em&gt;IONCLAD&lt;/em&gt;&lt;/a&gt; where survival hinges on your quick reflexes and power management prowess. Navigate your cannon, obliterate enemy ships, rescue allies, and unleash mega-bombs—just try not to blackout in this high-voltage cosmic showdown!&lt;/p&gt;

&lt;h2&gt;
  
  
  PowerLess Hotel 🏅
&lt;/h2&gt;

&lt;p&gt;&lt;sup&gt;By @iplnkr&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imaad-phoplunker.itch.io/powerlesshotel"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ztgmk3d0lxov5xkz3iz.gif" alt="Animation showing Powerless hotel in action" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imaad-phoplunker.itch.io/powerlesshotel"&gt;&lt;code&gt;Play&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://github.com/iplnkr/PowerGame"&gt;&lt;code&gt;View source&lt;/code&gt;&lt;/a&gt; · &lt;a href="https://itch.io/jam/gamedevjs-2024/rate/2667354"&gt;&lt;code&gt;Read reviews&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://imaad-phoplunker.itch.io/powerlesshotel"&gt;&lt;em&gt;PowerLess Hotel&lt;/em&gt;&lt;/a&gt;, stealthily navigate a haunted hotel to restore power, armed only with a torch and the peculiar ability to summon room service for spectral disturbances. Will you light up the rooms or succumb to the shadows? Prepare to adjust brightness and tip your way through this eerie, electrifying escapade!&lt;/p&gt;




&lt;p&gt;In addition to bragging rights, the creators above games won themselves free &lt;a href="https://dev.to/github/gamedevjs-open-source-challenge-winners-5076#:~:text=days%20for%20free.-,Try%20GitHub%20Copilot,-More%20from%20GitHub"&gt;GitHub Copilot&lt;/a&gt; for a year and $60 to spend in the &lt;a href="https://www.thegithubshop.com/"&gt;GitHub Shop&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Massive congratulations to everyone who participated, rated, and reviewed all those games. And shout out to &lt;a class="mentioned-user" href="https://dev.to/end3r"&gt;@end3r&lt;/a&gt; for another incredible game jam! 🤘🏻&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Pst! One last thing:&lt;/strong&gt; there's another big game jam happening in November. This one lasts an entire month, and you can use any programming language, game engine, open source libraries, or AI tool that you like.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://itch.io/jam/game-off-2024"&gt;Join now&lt;/a&gt; and be amongst the first to know the secret theme.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>javascript</category>
      <category>html</category>
      <category>github</category>
    </item>
    <item>
      <title>Release Radar · April 2024 Edition: Major updates from the open source community</title>
      <dc:creator>Michelle Duke</dc:creator>
      <pubDate>Fri, 03 May 2024 11:46:25 +0000</pubDate>
      <link>https://dev.to/github/release-radar-april-2024-edition-major-updates-from-the-open-source-community-37k1</link>
      <guid>https://dev.to/github/release-radar-april-2024-edition-major-updates-from-the-open-source-community-37k1</guid>
      <description>&lt;p&gt;We're right into the thick of the year, and developers worldwide are shipping software in all directions. Whilst we've been busy with &lt;a href="https://galaxy.github.com/" rel="noopener noreferrer"&gt;GitHub Galaxy&lt;/a&gt;, our community has been sending out major updates for top open source projects. We've taken a look at dozens of them and have curated a list, showing you what the project is, and its major updates. Let's take a look at our staff picks for this month's Release Radar.&lt;/p&gt;

&lt;h2&gt;
  
  
  ESLint 9.0
&lt;/h2&gt;

&lt;p&gt;Do you have the need to find and fix problems in your JavaScript? Then &lt;a href="https://github.com/eslint/eslint" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt; is for you. With over 120 million downloads each month, it's definitely one of the most popular projects out there. The latest version introduces a new configuration system, designed to simplify available configuration options. Old and deprecated rules have been removed, and a new configuration inspector has been added. &lt;a href="https://eslint.org/blog/2024/04/eslint-v9.0.0-released/" rel="noopener noreferrer"&gt;Check out the blog for all the highlights, and a migration guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Podlite 1.0
&lt;/h2&gt;

&lt;p&gt;Flexibility and ease of use is important in the software development lifecycle. That's why &lt;a href="https://github.com/podlite/podlite-specs" rel="noopener noreferrer"&gt;Podlite&lt;/a&gt; was built; a lightweight block-oriented markup language designed for simplicity. It's a universal markup language, not bound by any specific domain, programming language, or concept. &lt;a href="https://podlite.org/" rel="noopener noreferrer"&gt;Podlite&lt;/a&gt; is the type of language that's perfect for documentation, educational materials, or blogging. Congrats to the team on shipping your first major 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%2F5t9kdfdvqmep44ytloua.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%2F5t9kdfdvqmep44ytloua.png" alt="Podlite version 1.0" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/zag" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F278411%2Fca74b53c-e5da-4111-a96b-878fb352bff6.png" alt="zag"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/zag/podlite-v10-released-a-lightweight-block-oriented-markup-language-for-organizing-knowledge-313l" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Podlite v1.0 released: A lightweight block-oriented markup language for organizing knowledge&lt;/h2&gt;
      &lt;h3&gt;Alexandr Zahatski ・ Apr 23 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#podlite&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#architecture&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Quill 2.0
&lt;/h2&gt;

&lt;p&gt;Speaking of text, here's another one for you. &lt;a href="https://github.com/quilljs/quill" rel="noopener noreferrer"&gt;Quill&lt;/a&gt; is a rich text editor also built for compatibility and extensibility. The latest version prevents mistakenly overriding theme default toolbar settings, and Quill is now a valid ESM package for better ecosystem. There's nested Quill support, improved spelling support, and improved support for pasting from Google Docs and Microsoft Word. Check out all the changes on &lt;a href="https://slab.com/blog/announcing-quill-2-0/" rel="noopener noreferrer"&gt;the Slab website&lt;/a&gt;.&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%2Fvusyk2a8vrm4354spwsw.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%2Fvusyk2a8vrm4354spwsw.png" alt="Quill example with React" width="800" height="693"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spoon 11.0
&lt;/h2&gt;

&lt;p&gt;The creators at &lt;a href="https://spoon.gforge.inria.fr/" rel="noopener noreferrer"&gt;Spoon&lt;/a&gt; claim that "🥄 is made with ❤️, 🍻 and ✨"! And why not?! Spoon is a metaprogramming library to analyze and transform Java source code by parsing source files to build a well-designed AST (Abstract Syntax Tree). The latest version supports Java 17 and the modelling of receiver parameters has been changed. Read all about the changes in the &lt;a href="https://github.com/INRIA/spoon/releases/tag/v11.0.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traefik 3.0
&lt;/h2&gt;

&lt;p&gt;Pronounced "traffic", &lt;a href="https://github.com/traefik/traefik" rel="noopener noreferrer"&gt;Traefik&lt;/a&gt; is a modern HTTP reverse proxy and load balancer aimed at making deploying microservices easier. It integrates with your existing infrastructure components such as Docker, Kubernetes, and others, and configures itself automatically and dynamically. The latest version adds lots of new options and enhancements such as adding healthcheck options, support for custom headers, and more. Read the &lt;a href="https://doc.traefik.io/traefik/v3.0/migration/v2-to-v3/" rel="noopener noreferrer"&gt;migration guide&lt;/a&gt; on how to update to the latest version which is now required due to breaking changes.&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%2Fvm3u3nlgsr0yqsgfpckl.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%2Fvm3u3nlgsr0yqsgfpckl.png" alt="Traefik architecture" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Penpot 2.0
&lt;/h2&gt;

&lt;p&gt;Imagine designers and coders working seamlessly together. That's what &lt;a href="https://github.com/penpot/penpot" rel="noopener noreferrer"&gt;Penpot&lt;/a&gt; aims to do. It's a tool where designers can create stunning designs, interactive prototypes, and design systems at scale. Developers then have ready-to-use code, which makes their workflows faster and more efficient. &lt;a href="https://penpot.app/" rel="noopener noreferrer"&gt;Penpot&lt;/a&gt;'s latest version receives a new grid CSS layout, new UI, new components system, and more components. Oh and there's now light AND dark mode 🎉.&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%2Ffdikjbn876kvcygf5zkc.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%2Ffdikjbn876kvcygf5zkc.png" alt="Screenlayout with multiple users" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Loki 3.0
&lt;/h2&gt;

&lt;p&gt;It's like Prometheus, but for logs. Okay it's not really to do with the Norse or Greek gods, instead &lt;a href="https://grafana.com/oss/loki/" rel="noopener noreferrer"&gt;Loki&lt;/a&gt; is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by the open source project &lt;a href="https://prometheus.io/" rel="noopener noreferrer"&gt;Prometheus&lt;/a&gt;. Built by &lt;a href="https://github.com/grafana" rel="noopener noreferrer"&gt;Grafana Labs&lt;/a&gt;, Loki is designed for ease of use. Instead of indexing the contents of the logs, Loki provides a set of labels for each log stream. The latest update includes query acceleration with Bloom filters, native OTel support, Helm charts, and more. Check out the &lt;a href="https://github.com/grafana/loki/releases/tag/v3.0.0" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; for all the major changes and deprecations.&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%2Fcqy8mx9er7f4fqpknlth.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%2Fcqy8mx9er7f4fqpknlth.png" alt="Loki only indexes the metadata not the full text" width="800" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Typesense 26.0
&lt;/h2&gt;

&lt;p&gt;Have you ever tried to look up something, only to realise your search engine doesn't recognise your typos? Typesense to the rescue! It's a fast, typo-tolerant search engine built for an easier browsing experience. The latest version comes with new features such as built-in conversational search, image search, voice search, analytics, and more. Dive into the &lt;a href="https://github.com/typesense/typesense/releases/tag/v26.0" rel="noopener noreferrer"&gt;release notes&lt;/a&gt; for the full list of changes and enhancements.&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%2Fok8q3kl4vd5x8q589fef.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%2Fok8q3kl4vd5x8q589fef.gif" alt="Typesense demo" width="459" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Release Radar April 2024
&lt;/h2&gt;

&lt;p&gt;Well, that’s all for this edition. Thank you to everyone who submitted a project to be featured 🙏. We loved reading about the great things you're all working on. Whether your project is here or not, congratulations to everyone who shipped a new release 🎉, regardless of whether you shipped your project's first version, or you launched 26.0.&lt;/p&gt;

&lt;p&gt;If you missed our last Release Radar, check out the amazing open source projects that released major version projects in &lt;a href="https://dev.to/github/release-radar-march-2024-edition-481i"&gt;March&lt;/a&gt;. We love featuring projects submitted by the community. If you're working on an open source project and shipping a major version soon, we'd love to hear from you. Check out the &lt;a href="https://releaseradar.github.com/" rel="noopener noreferrer"&gt;Release Radar repository&lt;/a&gt;, and &lt;a href="https://github.com/github/release-radar/issues/new?assignees=MishManners&amp;amp;labels=&amp;amp;template=release-radar-request.yml&amp;amp;title=%5BRelease+Radar+Request%5D+%3Ctitle%3E" rel="noopener noreferrer"&gt;submit your project to be featured in the GitHub Release Radar&lt;/a&gt;.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/github" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&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%2Forganization%2Fprofile_image%2F2575%2F3da37f64-b46e-4fa5-bf86-01b63ba5f57b.png" alt="GitHub" width="200" height="200"&gt;
      &lt;div class="ltag__link__user__pic"&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%2Fuser%2Fprofile_image%2F397557%2F4eb4ece3-2832-407c-b933-f1b4b58829e6.jpg" alt="" width="800" height="859"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/github/release-radar-march-2024-edition-481i" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Release Radar • March 2024 Edition&lt;/h2&gt;
      &lt;h3&gt;Michelle Duke for GitHub ・ Apr 8 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#community&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#news&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>github</category>
      <category>developers</category>
      <category>news</category>
      <category>community</category>
    </item>
  </channel>
</rss>
