Good First Issues in Shell
Explore curated starter issues in high-scoring Shell repositories. Every listed issue belongs to a welcoming repository scored by C-Rank™ on PR merge rates, review responsiveness, and first-timer acceptance.
Arm Issue Sniper for fresh Shell beginner issues
Beginner issues in welcoming S/A-Tier repositories get snatched within 15 minutes. Receive instant alerts on Discord, Telegram, or Email the minute a maintainer opens a new task.
Live Good First Issues (30)
Environment Distribution: NA Graphical environment: NA Arch-Update version: v4.2.0 Arch-Update configuration NA Description of the bug There are some formatting issues in the Chinese simplified translation (zh_CN). Basically missing \ in the translated lines (it should be \\n rather than \n). See the logs below for the affected lines. Logs po/zh_CN.po:456: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:553: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:558: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:614: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:724: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:736: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:741: 'msgid' and 'msgstr' entries do not both end with '\n' msgfmt: found 7 fatal errors Additional context NA
What happened? I'm compiling on Fedora 44 KDE 6.7 Wayland, 128GB RAM. This is the coiline options I need but the options don't change the outcome as the bug is in the build script itself. ./compile.sh build BOARD=rpi4b BRANCH=edge RELEASE=trixie KERNEL_TARGET=edge BUILD_MINIMAL=yes BUILD_DESKTOP=no BOOT_LOGO=yes KERNEL_CONFIGURE=no SHOW_DEBUG=yes But his throws the following error at the end: 🐳|🔨] rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1347) [sender=3.4.1] [🐳|💥] Error 23 occurred in main shell [ at /armbian/lib/functions/logging/runners.sh:276 run_host_command_logged_raw() --> lib/functions/logging/runners.sh:276 run_host_command_logged() --> lib/functions/logging/runners.sh:258 create_image_from_sdcard_rootfs() --> lib/functions/image/rootfs-to-image.sh:80 do_with_logging() --> lib/functions/logging/section-logging.sh:81 build_rootfs_and_image() --> lib/functions/main/rootfs-im
What happened? I saw this message during boot. It says to report it. [ 10.473510] usbcore: registered new interface driver aic_btusb [ 10.485086] ********************************************************** [ 10.485088] ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE ** [ 10.485089] ** ** [ 10.485090] ** trace_printk() being used. Allocating extra memory. ** [ 10.485091] ** ** [ 10.485091] ** This means that this is a DEBUG kernel and it is ** [ 10.485092] ** unsafe for production use. ** [ 10.485093] ** ** [ 10.485094] ** If you see this message and you are not debugging ** [ 10.485094] ** the kernel, report this immediately to your vendor! ** [ 10.485095] ** ** [ 10.485096] ** NOTICE NOTICE NOTICE NOTICE NO
What happened? Trying to create peers with names that contain hyphens or underscores does not work. From the README of linuxserver/docker-wireguard, Number of peers to create confs for. Required for server mode. Can also be a list of names: myPC,myPhone,myTablet (alphanumeric only) How to reproduce? Install wireguard through armbian-config Enter a peer name with a hyphen or underscore On which OS are you observing this problem? (for easier diagnosis please provide logs with armbianmonitor -u) Other Code of Conduct I agree to follow this project's Code of Conduct
Is this a new request? I have checked that this app does not already have a pending request, has not previously been declined and does not already exist in deb-get. App Name Brave Origin Download URL https://brave.com/origin/linux/ Website URL https://brave.com/origin/ App Summary Brave Origin is a standalone version of the Brave browser focused on a streamlined, privacy-oriented browsing experience. Brave officially provides brave-origin for Debian, Ubuntu and Linux Mint through its official APT repository. Brave's official installation instructions configure the Brave APT repository and install the brave-origin package The package is maintained and distributed by Brave through its official APT repository, allowing APT to handle subsequent updates.
Is your improvement request related to a feature? Please describe Follow-up to #12225, which added longhornManager.resources to the chart (thanks!). The value is applied only to the longhorn-manager container. The hardcoded pre-pull-share-manager-image sidecar in the same DaemonSet pod has no resources and no way to set any: # chart/templates/daemonset-sa.yaml (v1.11.3 and v1.12.1) - name: pre-pull-share-manager-image imagePullPolicy: {{ .Values.image.pullPolicy }} image: ...longhorn-share-manager:... command: ["sh", "-c", "echo share-manager image pulled && sleep infinity"] Kubernetes only assigns a pod-level cgroup memory.max when every container in the pod has a memory limit. With the sidecar unlimited, setting longhornManager.resources.limits.memory still leaves the pod-level cgroup at max. This matters on platforms whose OOM handling ranks pod-level cgroups. For example, the Talos Linux (v1.12+) userspace OOM controller's default ranking protects pods whose pod cgroup has me
Problem The first step of the generate job in .github/workflows/refresh_demos.yml picks which .deb to install: { if [ "$GITHUB_EVENT" = release ]; then cat "$GITHUB_EVENT_PATH"; else curl --header "Authorization: Bearer ${{ github.token }}" https://api.github.com/repos/"$GITHUB_REPOSITORY"/releases/latest; fi; } \ | jq -r '.assets[] | select(.name | endswith("_amd64.deb")) | .url' \ | xargs wget ... -O package.deb GITHUB_EVENT is not a GitHub Actions environment variable. The documented ones are GITHUB_EVENT_NAME (the event) and GITHUB_EVENT_PATH (the payload file). $GITHUB_EVENT expands to the empty string, [ "" = release ] is always false, and the else branch always wins. Consequence: the workflow never uses the assets of the release that triggered it. It always downloads /releases/latest. The then branch and $GITHUB_EVENT_PATH are dead code. Evidence Release v5.60.2 triggered run #87 at 2026-08-22 18:58Z. The README it generated in #4097 reports: "telemetry.sdk.version": "5.61.1
~$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)" Installing/Updating Ghostty... This installer is not compatible with Ubuntu ~$ cat /etc/os-release NAME="TUXEDO OS" ID=tuxedo ID_LIKE="debian" PRETTY_NAME="TUXEDO OS (Debian base)" HOME_URL="https://tuxedocomputers.com/" SUPPORT_URL="https://support.tuxedocomputers.com/" BUG_REPORT_URL="https://gitlab.com/tuxedocomputers/development/tuxedo_os/os" PRIVACY_POLICY_URL="https://www.tuxedocomputers.com/en/Privacy-policy.tuxedo" VERSION_CODENAME=forky Tuxedo OS is switching from Ubuntu base to Debian Testing. Currently it's in Open Beta. The Ubuntu base for Tuxedo OS will continue to be supported throughout 26.04 at least, so the fix for this needs branching for when ID=tuxedo, as both Ubuntu and Debian will be valid possibilities.
Which feature would you like to have? Description I am using an Orange Pi 5 which has an onboard 2-wire fan header. On the Ubuntu official OS, the fan speed scales dynamically with CPU temperature via PWM. However, on Armbian (tested on both Desktop and CLI versions), the fan spins at 100% full speed constantly from the moment of power-on, causing excessive noise. What I've Tried Tested Armbian Desktop image – same issue. Tested Armbian CLI minimal image – same issue. No fan control interface appears under /sys/class/pwm/ or /sys/class/hwmon/. Original DTB Fan Node I extracted the working fan node from the original device tree for reference. Hopefully this helps with debugging: pwm-fan { compatible = "pwm-fan"; #cooling-cells = <0x02>; pwms = <0x1d1 0x00 0xc350 0x00>; cooling-levels = <0x00 0x32 0x64 0x96 0xc8 0xff>; rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; status = "okay"; phandle = <0x42a>; }; Request Cou
Q A OS macOS 26.5.2 (arm64) Shell & version bash 3.2.57 bashunit version 0.50.0 Summary When a test file fails to source, the test loop skips bashunit::cleanup_script_temp_files. Any bashunit::temp_file the file created at top level before the failure survives the run. The bench loop does call it on the same path, so the two runners disagree. Smallest member of the family the #1318 fix belongs to: an early continue that drops one step of the cleanup block. Current behavior The file is reported as a source failure, and its script temp files stay on disk after the run finishes. How to reproduce badsource_test.sh, valid up to the last line: LEAK="$(bashunit::temp_file leaky)" : >"$LEAK" echo "$LEAK" >"$CLEANUP_MARKER.path" function test_a() { assert_true true; } if [ 1 -eq 1 ] $ CLEANUP_MARKER=/tmp/bu-bs.marker ./bashunit --no-parallel badsource_test.sh Tests: 1 failed, 1 total $ ls "$(cat /tmp/bu-bs.marker.path)" /var/folders/.../bashunit/tmp/..._leaky.uevuXre --paral
Two LOW findings from the v4.0 final re-review — neither introduced by the release's fixes, neither blocking, both worth a small pass. Lifecycle event-count arithmetic doesn't reconcile. README.md:351 and README.ko.md:269 assert 21-event coverage, but the tree yields: settings.json wires 8 distinct events, hooks/examples/ covers 9 (2 overlapping) = 15 distinct; hooks/README.md's own catalog lists 22 events (16 with a shipped handler) and claims 27 total while 22 + 6 spec-only = 28. Reconcile hooks/README.md's catalog first, then re-derive the three READMEs' counts from that single source. scripts/tests/test_s5_hooks.sh leaves artifacts. No cleanup trap: its mktemp WORK dir and the run's /tmp/claude-loop-detect-* and /tmp/auto-verify-fix-* state files survive every invocation, and CI now runs the suite on every push. Suggested fix: add an EXIT trap that removes the WORK directory and the RUN_ID-scoped /tmp state files. 🤖 Generated with Claude Code
What happened? Expected: the board boots. Actual: the board reset-loops. Serial console shows repeatedly: DDR V2.07 6ede97a868 wesley.yao 22/11/29-19:27:02 08 REG2C: 0x00000031, 0x00000031 In 589MHz DDR3 Col=10 Bank=3 Row=15 Size=512MB OUT: sdram_init finish. No serial driver found resetting ... I got it working with the help of an LLM, I verified each step on hardware and this is the summary I got from it: Cause. &uart4 in rk3308-luckfox-nova-u-boot.dtsi is tagged u-boot,dm-pre-reloc. U-Boot removed pre-schema tag support in v2026.01 (6d04828b4520), which dropped the CONFIG_OF_TAG_MIGRATE block in scripts/Makefile.lib that passed those tags to fdtgrep. The node is therefore stripped from the SPL device tree, and stdout-path = "serial4" resolves to nothing. Extracted from the trixie image (idbloader at sector 64, DTB at offset 111304, 3220 bytes) — 26 nodes, no serial node, no serial4 alias: aliases { mmc0 = "/mmc@ff490000"; mmc1 = "/mmc@ff480000"; }; chosen {
Deferred from the v4.0 survey (theme C). A review lens orthogonal to code-review: did we build MORE than asked, is complexity proportionate, did scope drift mid-task. Cheap to port, pairs well with the adversarial loop. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code
Deferred from the v4.0 survey (theme C). Lock a definition-of-done before implementation starts; verify-agent then judges each DoD item PASS/FAIL/MANUAL at the end. Fills the gap between /plan and /verify-loop. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code
Deferred from the v4.0 survey (theme D, effort S). A stdlib-only helper that renders any outward mutation (send, publish, bid, env change) as a secret-masked request shape for review before firing. Pattern + ~80-line script. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code
Deferred from the v4.0 survey (theme G, all effort S). pull-main: conflict-safe main→dev merge with auto-backup branch and rollback matrix. worktree-collision-detect: SessionStart warning when two sessions share one working tree. push-before-ci: run CI-identical commands locally before push (includes the bracket-glob false-pass trap writeup). Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code
Deferred from the v4.0 survey (theme I). WCAG 2.1 AA audit lane and Core-Web-Vitals/Lighthouse lane with numeric-evidence-required verdicts. Needs only MCP tool-name remapping to this repo's chrome-devtools server. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code
Deferred from the v4.0 survey (theme A). Four-layer notification storm prevention: mandatory cooldown via libs/hook-guard.sh (ships in v4.0), no timeout-0 persistent notifications, layered dedup keys, webhook token guards — plus a rate watchdog that kills runaway notifier processes. Motivated by a real incident: 228 terminal-notifier processes spawned in 12 minutes. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code
Addon SambaNAS Your request I’m using the original Sambanas, and looked into the successor Sambanas2. I need to disable protection mode in order to add shares (not needed for the original Sambanas). What is the reason? I really don’t like that.
What happened? Hi, When i use armbian-install to install current configured system to the emmc, it's installed ok without errors, but if i mount just installed emmc i see no files on /root and just /etc/fstab Can someone help where to fix this behavior? Also if this will be future of armbian-install then can i request a switch added to just copy running system as it was before? How to reproduce? This is latest debian trixie version for Olimex A20 Lime2 Just apt update and apt upgrade Add test files in /root and /etc/netplan/. Run armbian-install Mount just installed emmc into /mnt On which OS are you observing this problem? (for easier diagnosis please provide logs with armbianmonitor -u) https://paste.armbian.com/asoduwolun Other Code of Conduct I agree to follow this project's Code of Conduct
Is this a new request? I have checked that this app does not already have a pending request, has not previously been declined and does not already exist in deb-get. App Name Nextpad++ Download URL https://github.com/nextpad-plus-plus/nextpad-plus-plus-linux/releases Website URL https://github.com/nextpad-plus-plus/nextpad-plus-plus-linux App Summary Nextpad++ for Linux is the full native port of Notepad++ for the Linux desktop. It's not an Electron wrapper, not a Wine bottle, not Flatpak, not GNUstep not a half-finished clone. A real GTK4 application built on the same Scintilla/Lexilla engine as Notepad++ itself, carrying the same version number as the macOS edition because it carries the same features: the two ports were developed against each other line by line, dialog by dialog, until the parity audit ran out of things to list. (Note Nextpad++ is a full port of Notepad++ for Windows) The launch pitch, in numbers: 5 MB download. ~32 MB on disk. Starts in about a second. Your who
indra ΘΔ 🐾 BOT installing live standard 12.4.3 fails while setting up the wine prefix. the failure occurs during the vcrun2022 setup. ------------------------------------------------------ warning: Running /home/unsoppingdrycat/.local/opt/wine-d2d1-nspa-11.13/bin/wineserver -w. This will hang until all wine processes in prefix=/home/unsoppingdrycat/..wine-ableton.prefix-stage.uNdubq terminate ------------------------------------------------------ Executing /home/unsoppingdrycat/.local/opt/wine-d2d1-nspa-11.13/bin/wine C:\windows\syswow64\regedit.exe /S C:\windows\Temp\_webdings\_register-font.reg Executing /home/unsoppingdrycat/.local/opt/wine-d2d1-nspa-11.13/bin/wine C:\windows\regedit.exe /S C:\windows\Temp\_webdings\_register-font.reg Executing cp /home/unsoppingdrycat/..wine-ableton.prefix-stage.uNdubq/dosdevices/c:/windows/temp/_webdings/_register-font.reg /tmp/winetricks.M4E0bQG0/_reg_405b24a4_103561.reg Executing /home/unsoppingdrycat/.local/opt/wine-d2d1-nspa-11.13/bin/w
Is this a new request? I have checked that this app does not already have a pending request, has not previously been declined and does not already exist in deb-get. App Name Ghost Downloader Download URL https://github.com/XiaoYouChR/Ghost-Downloader-3/releases Website URL https://gd.xychr.com/ App Summary AI-powered next-generation cross-platform multithreaded downloade. Features: IDM-style intelligent chunking⚡ without requiring file merging, plus AI smart acceleration 🚀 Frees UI resources when minimized to tray🍃 — minimal memory footprint in the background Supports HTTP, Magnet / BT, FTP, M3U8, MPEG-DASH, eD2k and more 🌐 Emulates real-browser TLS fingerprints🥷 so downloads are less likely to be blocked by anti-bot checks Parses YouTube▶️ and Bilibili videos — playlists, up to 4K/HDR, subtitles and login supported Dedicated parsers for GitHub🐙 releases and HuggingFace🤗 models with mirror acceleration Records M3U8 live streams📺 wit
What happened? Summary Allwinner A64 / sun50i-a64 (Pine64) - Hardware Crypto Engine (sun8i-ce) corrupts OpenSSH key exchanges and RSA host key generation Board / OS Details Board: Pine64 (Allwinner A64 / sun50i-a64) Architecture: aarch64 (sunxi64) Kernel Branch: Current (Linux 6.x) Target OS: Ubuntu Noble / Debian Trixie (Armbian Current) Description On modern Armbian images for the Pine64 (sun50i-a64), the Allwinner hardware crypto engine driver (sun8i_ce / CONFIG_CRYPTO_DEV_SUN8I_CE) causes silent data corruption during cryptographic operations. Because OpenSSH 9.x+ utilizes crypto offloading for key exchange (KEX), SHA hashing, and signature validation, incoming SSH sessions fail immediately during handshake or authentication with errors such as: ssh_dispatch_run_fatal: Connection to <IP> port 22: message authentication code incorrect ssh_dispatch_run_fatal: Connection to <IP> port 22: incorrect signature accumulate_host_timing_secret: encode ssh-rsa key: unexpected internal erro
Good First Issue Repo: tunaos · Area: scripts / Corral · Skill: bash + BATS (mocked tooling, no VMs) scripts/corral-build.sh drives Corral VM builds (used by boot-gate-matrix.sh for the boot-gate health checks). It has zero test coverage. Scope BATS tests with corral/podman mocked as stub binaries: argument parsing and required-arg errors build-dir creation/hygiene (no stale state leaks) command failure propagation (a failed build step aborts with the right code) idempotency — re-running on an existing build dir behaves sanely Acceptance tests/bats/test_corral_build.bats green in CI No behavior change to the script; DCO-signed commit Part of the Hacktoberfest 2026 core-code pool (see #1780) Related: #1599 (homelab/Corral story), #1780 Filed by outreach agent (ACMM L6 — full mode)
Good First Issue Repo: tunaos · Area: scripts / build-status · Skill: bash + BATS (fixture-based, no API) .github/scripts/update-build-status.sh refreshes the README build-status matrix (the github-actions bot docs: refresh build matrix status commits, e.g. #1749). It has zero test coverage. Scope BATS tests over fixture inputs — no GitHub API calls: cell classification: green / red / unbuilt / unknown for variant×arch cells table render determinism (same fixture ⇒ byte-identical output) error handling: missing/invalid status input, exit codes flag/arg handling and defaults Acceptance tests/bats/test_update_build_status.bats green in CI Render output matches the existing README section for the same fixture No behavior change to the script; DCO-signed commit Part of the Hacktoberfest 2026 core-code pool (see #1780) Related: #1749, #1780 Filed by outreach agent (ACMM L6 — full mode)
Good First Issue Repo: tunaos · Area: scripts / CI health gates · Skill: bash + BATS (no infra needed) scripts/boot-gate-matrix.sh fans scripts/boot-gate.sh across the KubeVirt cluster with bounded concurrency, round-robining VMs across nodes; the matrix passes only if every gate passes. It has zero test coverage today (only boot-gate resume + ownership are tested). Scope BATS tests for the pure logic — no live cluster required (mock corral/SSH with stubs): bare-variant → default flavor expansion (GATE_FLAVORS), comma/space lists concurrency budgeting (GATE_CONCURRENCY, bounded in-flight gates) node round-robin distribution across GATE_NODES failure aggregation — any gate fails ⇒ matrix fails; exit codes env-var defaults and invalid-input handling Acceptance tests/bats/test_boot_gate_matrix.bats green in CI (model: test_boot_gate_resume.bats) No behavior change to the script; DCO-signed commit Part of the Hacktoberfest 2026 core-code pool (see #1780) Related: #1762 (varia
First up loving this project. Despite the clear rough edges, I really like the model, and I'm even hoping to be able to contribute some code at some point in the future. I've had some issues with using IPv6, specifically getting my interfaces to configure with SLAAC, and accessing the WebUI over IPv6. The WebUI issue was straight forward enough, Nginx by default only listens on IPv4 when configured with Listen $PORT. I solved this by editing system.json and setting webui.port.http and webui.port.https to [::]:80 ipv6only=off and [::]:443 ipv6only=off respectively. This works, but it's not ideal from a UX perspective. If I was going to build something to configure IPv6 for Nginx, I probably would go with 4 declarations of Listen, 2 for IPv4 and 2 for IPv6. The SLAAC issue took a bit more figuring, but it all comes down to the accept_ra option. With IPv6 enabled and IPv6 DHCP disabled on eth0, the expected behaviour is for the interface to automatically configure with SLAAC, however I fo
Is this a new request? I have checked that this app does not already have a pending request, has not previously been declined and does not already exist in deb-get. App Name MetaClean Download URL https://github.com/Moresyl/metaclean/releases Website URL https://github.com/Moresyl/metaclean App Summary MetaClean is a free, open-source desktop application for removing metadata from images, PDFs, Office documents, and text files entirely offline. It publishes an upstream-maintained stable amd64 .deb on each GitHub Release. Disclosure: I am the project maintainer.
Device Name Redmi 7 Device Codename onc ROM Name LineageOS ROM Version 23.2 Android Version 16 Kernel Source Link https://gitlab.com/hadadrjt/android_kernel_xiaomi_onc Kernel Source Branch lineage-23.2 Kernel Version 5.10.101
Top Shell Repositories with Beginner Issues (20)
Updated Daily via GitHub GraphQLAn interactive update notifier & applier for Arch Linux that assists you with important pre / post update tasks (including a systray applet and extensive CLI).
Docker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup
Open-source cloud native platform that automates and simplifies the deployment of virtualization, Kubernetes, and OpenStack infrastructure.
Mother of all VPNs
Software ports for the Haiku operating system.
AppImages That Truly Work On Any Linux System (Even musl-libc and non-FHS systems)
Reproducible Central: rebuild instructions for artifacts published to (Maven) Central Repository
Supercharge Claude Code with 11 AI agents, 36 commands & 15 skills — the claude-code plugin framework inspired by oh-my-zsh. 6-layer security hooks included. 5-min install.
Bringing a modern cloud-native experience to the Enterprise Linux Desktop
ABBS/ACBS tree for AOSC OS package metadata, build configuration, scripts, and patches
The official build framework for the Armbian Linux distribution. This repository contains the complete toolchain and scripts required to compile custom OS images from source, including kernel configuration, U-Boot handling, and board-specific tweaks for various ARM and ARM64 single-board computers.
No repository description available.
No repository description available.
The ultimate productivity workstation
Run zizmor from GitHub Actions!
Cross-vendor messaging for CLI AI coding agents — let Claude Code, Codex, Gemini & Copilot talk to each other in one team. Bash + SQLite, no daemon, no framework.
Claude Code plugin: run the Antigravity CLI (Gemini) as a collaborating sub-agent with intelligent model routing across the SDLC. Community project; not affiliated with Google/Anthropic.
Mac Admins’ new favorite, MDM-agnostic, “set-it-and-forget-it” end-user messaging for Apple’s Declarative Device Management-enforced macOS update deadlines
Cloud-Native distributed storage built on and for Kubernetes
Containerized Minecraft Bedrock Dedicated Server with selectable version
How to make your first Shell open-source pull request
Finding approachable Good First Issues in Shell allows you to build real-world software engineering experience. Instead of submitting PRs to abandoned repositories, GetMerged verifies maintainer review speeds and first-timer acceptance rates before you write a single line of code.
Select any issue above to claim it directly on GitHub, or click a repository to inspect full maintainer review turnaround metrics and triage guidance!
Get this week's top welcoming repos + fresh Good First Issues for Shell
Free weekly email, scoped to Shell. No account needed - confirm once and unsubscribe anytime.