diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..3e3f004 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,106 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community +* Asking questions about the project's history and decisions — curiosity is + always welcome + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances + of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information without explicit permission +* Asking why the project doesn't use systemd (the answer is always "no :3", + this has been established, please respect our time) +* Continuing to insist on systemd after being told no. If you really want a + systemd-based Antergos NeXT, here is your path: + 1. Fork this repository from the `before-systemd-change` branch (not master). + Note: that branch uses `archiso`, not our custom `buildiso` — you will + need to adapt every package and profile. + 2. Fork antergos-packages and revert the pipewire/dinit package changes. + 3. Update the repo URLs in your fork to point to your own repos. + 4. Build your own ISO. + Your fork will not be supported here. No issues, no PRs, no handholding. + You wanted systemd, you maintain it. +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +### Disagreements and Heated Discussions + +Disagreement is natural in open source. We do not ban spirited discussion +about technical decisions, project history, or design choices. However, +when a discussion turns into a personal attack or becomes unproductive, +the AI moderator will step in to de-escalate, restrict comments, or lock +the conversation as needed. The goal is to keep discussion productive, +not to silence dissent. + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards +and will take appropriate and fair corrective action in response to any +behavior they deem inappropriate, threatening, offensive, or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that do +not align with this Code of Conduct. + +## Scope + +This Code of Conduct applies within all community spaces, including GitHub, +Matrix, and any other official channels. It also applies when representing +the project in public spaces. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to **ash8820@proton.me**. All complaints will be reviewed and +investigated promptly and fairly. + +## Enforcement Guidelines + +### 1. Correction +**Community Impact**: Minor inappropriate behavior or language. +**Consequence**: A private, written warning. + +### 2. Warning +**Community Impact**: A more significant violation or pattern of behavior. +**Consequence**: A warning with consequences for continued behavior. +No interaction with the involved parties for a specified period. + +### 3. Temporary Ban +**Community Impact**: A serious violation of community standards. +**Consequence**: A temporary ban from all community spaces. + +### 4. Permanent Ban +**Community Impact**: Severe or sustained violations, including harassment. +**Consequence**: A permanent ban from the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1. + +[homepage]: https://www.contributor-covenant.org diff --git a/.github/ISSUE_TEMPLATE/1-bug_report.yml b/.github/ISSUE_TEMPLATE/1-bug_report.yml new file mode 100644 index 0000000..733fa4a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-bug_report.yml @@ -0,0 +1,72 @@ +name: Bug Report +description: File a bug report +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + - type: textarea + id: description + attributes: + label: Description + description: A clear and concise description of what the bug is. + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Steps to Reproduce + description: How can we reproduce this issue? + placeholder: | + 1. Boot ISO with '...' + 2. Select installer option '...' + 3. See error + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected Behavior + description: What did you expect to happen? + validations: + required: true + - type: textarea + id: actual + attributes: + label: Actual Behavior + description: What actually happened? + validations: + required: true + - type: textarea + id: environment + attributes: + label: Environment + description: | + Examples: + - **ISO version**: antergos-next-20260701 + - **Install method**: Online / BYODE + - **Desktop**: KDE Plasma / Xfce + value: | + - ISO version: + - Install method: + - Desktop: + validations: + required: false + - type: textarea + id: logs + attributes: + label: Relevant Log Output + description: Please copy and paste any relevant log output. + render: shell + validations: + required: false + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our Code of Conduct. + options: + - label: I agree to follow this project's Code of Conduct + required: true diff --git a/.github/ISSUE_TEMPLATE/2-feature_request.yml b/.github/ISSUE_TEMPLATE/2-feature_request.yml new file mode 100644 index 0000000..f7fa756 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-feature_request.yml @@ -0,0 +1,46 @@ +name: Feature Request +description: Suggest an idea for this project +title: "[Feature]: " +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + Thanks for suggesting a feature! + - type: textarea + id: problem + attributes: + label: Is your feature request related to a problem? + description: A clear and concise description of what the problem is. + placeholder: I'm always frustrated when [...] + validations: + required: false + - type: textarea + id: solution + attributes: + label: Describe the Solution + description: What would you like to see happen? + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Any alternative solutions or features you've considered. + validations: + required: false + - type: textarea + id: context + attributes: + label: Additional Context + description: Add any other context or screenshots about the feature request here. + validations: + required: false + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our Code of Conduct. + options: + - label: I agree to follow this project's Code of Conduct + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..fa154f8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Antergos NeXT Community + url: https://github.com/Antergos-NeXT/antergos-iso/discussions + about: Please ask and answer questions here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..20999de --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,31 @@ +## Description + + + +## Type of Change + +- [ ] New feature +- [ ] Bug fix +- [ ] Refactoring +- [ ] Documentation update +- [ ] Infrastructure / CI + +## How to Test + + + +1. +2. +3. + +## Checklist + +- [ ] Code follows the project's style guidelines +- [ ] Self-reviewed for obvious errors +- [ ] Tested locally with `buildiso` +- [ ] Existing tests pass +- [ ] Updated documentation if needed + +## Related Issues + + diff --git a/.github/workflows/ai-moderator.yml b/.github/workflows/ai-moderator.yml new file mode 100644 index 0000000..09ca1d7 --- /dev/null +++ b/.github/workflows/ai-moderator.yml @@ -0,0 +1,31 @@ +name: AI Community Moderator + +on: + issues: + types: [opened] + pull_request: + types: [opened] + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + discussion: + types: [created] + discussion_comment: + types: [created] + +permissions: + contents: read + issues: write + pull-requests: write + discussions: write + models: read + +jobs: + moderate: + runs-on: ubuntu-latest + steps: + - uses: benbalter/ai-community-moderator@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + severity-threshold: 5 diff --git a/README.md b/README.md index 45ed992..6848e20 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ A community revival of Antergos — built on **Artix Linux** with **Dinit**, **K ## Why Artix? -The systemd migration in the Linux ecosystem has been controversial, and the original Antergos community had a strong preference for alternatives. Artix Linux provides a clean Arch-like experience without systemd. We default to **Dinit** — see `changing-init.md` if you want something else. +The Antergos NeXT project prefers init system flexibility over systemd lock-in. Artix Linux provides a clean Arch-like experience with your choice of **Dinit** (default), Runit, or S6 — see `changing-init.md` if you want something else. > **Why Dinit?** We shipped OpenRC. Then Calamares kidnapped pacman's resolver and every `--noconfirm` call picked `elogind-dinit` (alphabetically before `elogind-openrc`). Dinit works great and OpenRC's service enabling was broken on installed systems anyway. Dinit wins by alphabetical destiny. diff --git a/iso-profiles/antergos-minimal/live-overlay/etc/calamares/modules/netinstall.yaml b/iso-profiles/antergos-minimal/live-overlay/etc/calamares/modules/netinstall.yaml index d159284..3218c1d 100644 --- a/iso-profiles/antergos-minimal/live-overlay/etc/calamares/modules/netinstall.yaml +++ b/iso-profiles/antergos-minimal/live-overlay/etc/calamares/modules/netinstall.yaml @@ -257,7 +257,7 @@ packages: - sddm - sddm-dinit - - antergos-sddm-theme + - pixie-sddm-git - name: "LightDM" description: "LightDM display manager" diff --git a/iso-profiles/antergos-minimal/live-overlay/usr/lib/calamares/modules/packages/main.py b/iso-profiles/antergos-minimal/live-overlay/usr/lib/calamares/modules/packages/main.py index f643860..629f4a4 100644 --- a/iso-profiles/antergos-minimal/live-overlay/usr/lib/calamares/modules/packages/main.py +++ b/iso-profiles/antergos-minimal/live-overlay/usr/lib/calamares/modules/packages/main.py @@ -13,8 +13,7 @@ # # Calamares is Free Software: see the License-Identifier above. # -# Antergos NeXT: Install one-at-a-time with error isolation, -# --overwrite='*' to avoid file conflicts, and per-package logging. +# Antergos NeXT: Batch install with --overwrite='*' to avoid file conflicts. import abc from string import Template @@ -207,33 +206,32 @@ class PMPacman(PackageManager): raise def install(self, pkgs, from_local=False): - for pkg in pkgs: - command = ["pacman"] - if from_local: - command.append("-U") - else: - command.append("-S") + command = ["pacman"] + if from_local: + command.append("-U") + else: + command.append("-S") - command.append("--noconfirm") - command.append("--noprogressbar") - command.append("--overwrite=*") + command.append("--noconfirm") + command.append("--noprogressbar") + command.append("--overwrite=*") - if self.pacman_needed_only is True: - command.append("--needed") - if self.pacman_disable_timeout is True: - command.append("--disable-download-timeout") + if self.pacman_needed_only is True: + command.append("--needed") + if self.pacman_disable_timeout is True: + command.append("--disable-download-timeout") - command.append(pkg) + command += pkgs - self.reset_progress() - try: - self.run_pacman(command, True) - libcalamares.utils.debug("package_ok: {!s}".format(pkg)) - except subprocess.CalledProcessError as e: - libcalamares.utils.warning("package_fail: {!s}".format(pkg)) - libcalamares.utils.debug("stdout:" + str(e.stdout)) - libcalamares.utils.debug("stderr:" + str(e.stderr)) - raise + self.reset_progress() + try: + self.run_pacman(command, True) + libcalamares.utils.debug("packages_ok: {!s}".format(pkgs)) + except subprocess.CalledProcessError as e: + libcalamares.utils.warning("packages_fail: {!s}".format(pkgs)) + libcalamares.utils.debug("stdout:" + str(e.stdout)) + libcalamares.utils.debug("stderr:" + str(e.stderr)) + raise def remove(self, pkgs): self.reset_progress() diff --git a/iso-profiles/antergos-minimal/profile.yaml b/iso-profiles/antergos-minimal/profile.yaml index 3a48d5a..dac70e4 100644 --- a/iso-profiles/antergos-minimal/profile.yaml +++ b/iso-profiles/antergos-minimal/profile.yaml @@ -29,7 +29,7 @@ rootfs: - calamares-branding-antergos-next-minimal - antergos-next-keyring - antergos-wallpapers - - antergos-sddm-theme + - pixie-sddm-git - antergos-grub-theme - falkon - antergos-xfce-theme diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/netinstall.yaml b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/netinstall.yaml index 0505a76..2d2d40e 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/netinstall.yaml +++ b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/netinstall.yaml @@ -189,7 +189,7 @@ packages: - sddm - sddm-dinit - - antergos-sddm-theme + - pixie-sddm-git - name: "LightDM" description: "LightDM display manager" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml b/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml index 8763e82..be2362c 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml @@ -304,7 +304,7 @@ packages: - sddm - sddm-dinit - - antergos-sddm-theme + - pixie-sddm-git - name: "LightDM" description: "LightDM display manager" diff --git a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/packages/main.py b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/packages/main.py index f643860..629f4a4 100644 --- a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/packages/main.py +++ b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/packages/main.py @@ -13,8 +13,7 @@ # # Calamares is Free Software: see the License-Identifier above. # -# Antergos NeXT: Install one-at-a-time with error isolation, -# --overwrite='*' to avoid file conflicts, and per-package logging. +# Antergos NeXT: Batch install with --overwrite='*' to avoid file conflicts. import abc from string import Template @@ -207,33 +206,32 @@ class PMPacman(PackageManager): raise def install(self, pkgs, from_local=False): - for pkg in pkgs: - command = ["pacman"] - if from_local: - command.append("-U") - else: - command.append("-S") + command = ["pacman"] + if from_local: + command.append("-U") + else: + command.append("-S") - command.append("--noconfirm") - command.append("--noprogressbar") - command.append("--overwrite=*") + command.append("--noconfirm") + command.append("--noprogressbar") + command.append("--overwrite=*") - if self.pacman_needed_only is True: - command.append("--needed") - if self.pacman_disable_timeout is True: - command.append("--disable-download-timeout") + if self.pacman_needed_only is True: + command.append("--needed") + if self.pacman_disable_timeout is True: + command.append("--disable-download-timeout") - command.append(pkg) + command += pkgs - self.reset_progress() - try: - self.run_pacman(command, True) - libcalamares.utils.debug("package_ok: {!s}".format(pkg)) - except subprocess.CalledProcessError as e: - libcalamares.utils.warning("package_fail: {!s}".format(pkg)) - libcalamares.utils.debug("stdout:" + str(e.stdout)) - libcalamares.utils.debug("stderr:" + str(e.stderr)) - raise + self.reset_progress() + try: + self.run_pacman(command, True) + libcalamares.utils.debug("packages_ok: {!s}".format(pkgs)) + except subprocess.CalledProcessError as e: + libcalamares.utils.warning("packages_fail: {!s}".format(pkgs)) + libcalamares.utils.debug("stdout:" + str(e.stdout)) + libcalamares.utils.debug("stderr:" + str(e.stderr)) + raise def remove(self, pkgs): self.reset_progress() diff --git a/iso-profiles/antergos/profile.yaml b/iso-profiles/antergos/profile.yaml index 103a8bc..55205c4 100644 --- a/iso-profiles/antergos/profile.yaml +++ b/iso-profiles/antergos/profile.yaml @@ -32,7 +32,7 @@ rootfs: - yay - antergos-next-desktop-settings - antergos-plasma-theme - - antergos-sddm-theme + - pixie-sddm-git - antergos-wallpapers - antergos-grub-theme - hiredis