From bb78b443df0e27e214e1ae135932c1e654264515 Mon Sep 17 00:00:00 2001 From: gnacho Date: Sat, 22 Aug 2026 19:17:17 +0200 Subject: [PATCH 1/4] feat(data): add AppStream metainfo and tidy desktop categories (#156) --- PKGBUILD | 2 ++ data/io.github.gnacho.nextsync.desktop | 2 +- data/io.github.gnacho.nextsync.metainfo.xml | 37 +++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 data/io.github.gnacho.nextsync.metainfo.xml diff --git a/PKGBUILD b/PKGBUILD index 051d3b1..b79da93 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -117,4 +117,6 @@ package() { install -Dm644 data/io.github.gnacho.nextsync.desktop \ "$pkgdir/usr/share/applications/io.github.gnacho.nextsync.desktop" + install -Dm644 data/io.github.gnacho.nextsync.metainfo.xml \ + "$pkgdir/usr/share/metainfo/io.github.gnacho.nextsync.metainfo.xml" } diff --git a/data/io.github.gnacho.nextsync.desktop b/data/io.github.gnacho.nextsync.desktop index b7ed9f3..0bb582d 100644 --- a/data/io.github.gnacho.nextsync.desktop +++ b/data/io.github.gnacho.nextsync.desktop @@ -5,6 +5,6 @@ Exec=nextsync Icon=io.github.gnacho.nextsync Terminal=false Type=Application -Categories=Network;FileTransfer;Utility; +Categories=Network;FileTransfer; Keywords=Nextcloud;Sync;Cloud;Files; StartupNotify=true diff --git a/data/io.github.gnacho.nextsync.metainfo.xml b/data/io.github.gnacho.nextsync.metainfo.xml new file mode 100644 index 0000000..c7a4f70 --- /dev/null +++ b/data/io.github.gnacho.nextsync.metainfo.xml @@ -0,0 +1,37 @@ + + + io.github.gnacho.nextsync + NextSync + Your files, local. Any server, in sync + + gnacho + + io.github.gnacho.nextsync.desktop + https://github.com/gnacho/nextsync + https://github.com/gnacho/nextsync/issues + CC0-1.0 + GPL-3.0-or-later + +

+ NextSync is a GNOME-native desktop companion for keeping complete local + mirrors of your Nextcloud accounts. It delegates the heavy lifting to the + proven command-line sync engine and adds the desktop integration: system + tray, live folder status, conflict resolution and deletion review. +

+
+ + Network + FileTransfer + + + Nextcloud + sync + cloud + files + + io.github.gnacho.nextsync + + + + +
From ae51288e2588b4914434df618857b53b2deefdb5 Mon Sep 17 00:00:00 2001 From: gnacho Date: Sat, 22 Aug 2026 19:17:17 +0200 Subject: [PATCH 2/4] docs: add security policy, code of conduct, contributing guide and issue templates (#156) --- .github/ISSUE_TEMPLATE/bug_report.yml | 27 ++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 ++ .github/ISSUE_TEMPLATE/feature_request.yml | 18 +++++++ CODE_OF_CONDUCT.md | 62 ++++++++++++++++++++++ CONTRIBUTING.md | 42 +++++++++++++++ SECURITY.md | 25 +++++++++ 6 files changed, 179 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..2ea05e4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,27 @@ +name: Bug report +description: Something does not work as expected +labels: ["bug"] +body: + - type: textarea + id: what + attributes: + label: What happened? + description: What you did, what you expected, and what you got instead. + validations: + required: true + - type: textarea + id: logs + attributes: + label: Logs and diagnostics + description: >- + Relevant output of `journalctl --user -u nextsync-app` or a coredump + (`coredumpctl info nextsync`). Redact personal data before pasting. + render: text + - type: input + id: version + attributes: + label: Version + description: NextSync version, distro and GTK version. + placeholder: e.g. 0.122.0, Arch Linux, gtk4 4.22 + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..f15ce9c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Security report + url: https://github.com/gnacho/nextsync/security/policy + about: Please report vulnerabilities privately, as described in SECURITY.md. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..dcf48bc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,18 @@ +name: Feature request +description: Propose a new capability or improvement +labels: ["enhancement"] +body: + - type: textarea + id: problem + attributes: + label: What problem does this solve? + description: Describe the use case or friction, not just the feature. + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: How you imagine it working. Alternatives considered help too. + validations: + required: false diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..e3e7c55 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,62 @@ +# Contributor Covenant 3.0 Code of Conduct + +## Our Pledge + +We pledge to make our community welcoming, safe, and equitable for all. + +We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of characteristics including race, ethnicity, caste, color, age, physical characteristics, neurodiversity, disability, sex or gender, gender identity or expression, sexual orientation, language, philosophy or religion, national or social origin, socio-economic position, level of education, or other status. The same privileges of participation are extended to everyone who participates in good faith and in accordance with this Covenant. + +## Encouraged Behaviors + +While acknowledging differences in social norms, we all strive to meet our community's expectations for positive behavior. We also understand that our words and actions may be interpreted differently than we intend based on culture, background, or native language. + +With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including: + +1. Respecting the **purpose** **of our community**, our activities, and our ways of gathering. +2. Engaging **kindly and honestly** with others. +3. Respecting **different viewpoints** and experiences. +4. **Taking responsibility** for our actions and contributions. +5. Gracefully giving and accepting **constructive feedback**. +6. Committing to **repairing harm** when it occurs. +7. Behaving in other ways that promote and sustain the **well-being of our community**. + +## Restricted Behaviors + +We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct. + +1. **Harassment.** Violating explicitly expressed boundaries or engaging in unnecessary personal attention after any clear request to stop. +2. **Character attacks.** Making insulting, demeaning, or pejorative comments directed at a community member or group of people. +3. **Stereotyping or discrimination.** Characterizing anyone's personality or behavior on the basis of immutable identities or traits. +4. **Sexualization.** Behaving in a way that would generally be considered inappropriately intimate in the context or purpose of the community. +5. **Violating confidentiality**. Sharing or acting on someone's personal or private information without their permission. +6. **Endangerment.** Causing, encouraging, or threatening violence or other harm toward any person or group. +7. Behaving in other ways that **threaten the well-being** of our community. + +### Other Restrictions + +1. **Misleading identity.** Impersonating someone else for any reason, or pretending to be someone else to evade enforcement actions. +2. **Failing to credit sources.** Not properly crediting the sources of content you contribute. +3. **Promotional materials**. Sharing marketing or other commercial content in a way that is outside the norms of the community. +4. **Irresponsible communication.** Failing to responsibly present content which includes, links or describes any other restricted behaviors. + +## Reporting an Issue + +Tensions can occur between community members even when they are trying their best to collaborate. Not every conflict represents a code of conduct violation, and this Code of Conduct reinforces encouraged behaviors and norms that can help avoid conflicts and minimize harm. + +When an incident does occur, it is important to report it promptly. **To report a possible violation, send an email to hnacho@proton.me.** + +Reports are taken seriously and answered in a timely manner. Investigations stay as transparent as possible while prioritizing safety and confidentiality, and enforcement actions are carried out in private with the involved parties. + +## Addressing and Repairing Harm + +If a report confirms a violation of this Code of Conduct, the enforcement ladder of the Contributor Covenant may be used to determine how best to repair harm, based on the incident's impact: warning, temporarily limited activities, temporary suspension, or permanent ban. Lower rungs may be skipped depending on severity. The full ladder is described at https://www.contributor-covenant.org/version/3/0/ . + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public or other spaces. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 3.0, permanently available at https://www.contributor-covenant.org/version/3/0/ . + +Contributor Covenant is stewarded by the Organization for Ethical Source and licensed under CC BY-SA 4.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0/ . diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..8601070 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,42 @@ +# Contributing + +## Build + +```bash +cargo build --release +``` + +The Arch package builds with `makepkg` against the included `PKGBUILD`. + +## Tests and Gates + +Every change must pass, in this order: + +```bash +cargo fmt --check +cargo clippy --all-targets -- -D warnings +cargo test +``` + +All three run in CI; a red gate is not merged. + +## Commits and Pull Requests + +- Conventional commits (`feat:`, `fix:`, `refactor:`...), one logical change + per commit, subject in imperative mood. +- PRs target `main` and merge as squash. +- Code, comments and commit messages are in English. + +## Translations + +The UI is bilingual English/Spanish through the built-in catalog in +`src/i18n`. Every new translatable string needs its Spanish entry; a +coverage test fails the build otherwise. The Spanish catalog must stay +sorted (byte order) or lookups silently miss strings. + +## Version Bumps + +The version lives in `Cargo.toml`; a bump also touches `Cargo.lock`, +`PKGBUILD`, `version.json`, the README badges and +`data/io.github.gnacho.nextsync.metainfo.xml` (``). Keep them in +sync in the same commit. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..8bc796a --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,25 @@ +# Security Policy + +## Supported Versions + +Only the latest release receives security fixes. Run the current version. + +## Reporting a Vulnerability + +Please report security issues privately to hnacho@proton.me, not as public +GitHub issues. Include: + +- The affected version. +- Steps to reproduce or a proof of concept. +- The impact you see (what an attacker could do). + +You can expect an acknowledgement within a few days. If the issue is +confirmed, the fix ships in the next release and you get credit in the +changelog unless you prefer otherwise. + +## Scope Notes + +NextSync delegates synchronization to the `nextcloudcmd` engine and stores +credentials in the system keyring (libsecret). Issues in those components +belong to their own projects, but if you are unsure where a problem lives, +report it here anyway and it will be routed. From 627f57cb0d4b42f90fc7061321ba13e1a009e895 Mon Sep 17 00:00:00 2001 From: gnacho Date: Sat, 22 Aug 2026 19:22:42 +0200 Subject: [PATCH 3/4] docs: point the readme website links at the public landing (#156) --- README.es.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.es.md b/README.es.md index 86bec54..866f981 100644 --- a/README.es.md +++ b/README.es.md @@ -3,7 +3,7 @@

Tus ficheros, en local. Cualquier servidor, en sincronización.

Un compañero de escritorio para GNOME que mantiene espejos locales completos de tus cuentas. Agnóstico del servidor, construido con Rust, GTK 4 y Libadwaita.

- Sitio web + Sitio web · Reportar un problema

diff --git a/README.md b/README.md index 1fe46af..1f77af5 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

Your files, local. Any server, in sync.

A GNOME-native desktop companion for keeping complete local mirrors of your accounts. Server agnostic, built with Rust, GTK 4, and Libadwaita.

- Website + Website · Report an issue

From 11545d0c0b8aee5dfbe5e5b00c99fc2e17a79fd4 Mon Sep 17 00:00:00 2001 From: gnacho Date: Sat, 22 Aug 2026 19:27:23 +0200 Subject: [PATCH 4/4] docs: add the website badge to the readmes --- README.es.md | 1 + README.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.es.md b/README.es.md index 866f981..e8511e9 100644 --- a/README.es.md +++ b/README.es.md @@ -13,6 +13,7 @@

Versión 0.120.0 + Sitio web Linux GNOME GTK 4 diff --git a/README.md b/README.md index 1f77af5..cf335e0 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@

Version 0.120.0 + Website Linux GNOME GTK 4