Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -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.
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -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
62 changes: 62 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -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/ .
42 changes: 42 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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` (`<releases>`). Keep them in
sync in the same commit.
2 changes: 2 additions & 0 deletions PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
3 changes: 2 additions & 1 deletion README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<p><strong>Tus ficheros, en local. Cualquier servidor, en sincronización.</strong></p>
<p>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.</p>
<p>
<a href="https://github.com/gnacho/nextsync">Sitio web</a>
<a href="https://nextsync.cloudless.club/">Sitio web</a>
·
<a href="https://github.com/gnacho/nextsync/issues">Reportar un problema</a>
</p>
Expand All @@ -13,6 +13,7 @@
</p>
<p>
<img src="https://img.shields.io/badge/version-0.122.0-6557e8?style=flat-square" alt="Versión 0.120.0">
<a href="https://nextsync.cloudless.club/"><img src="https://img.shields.io/badge/web-nextsync.cloudless.club-26a269?style=flat-square" alt="Sitio web"></a>
<img src="https://img.shields.io/badge/platform-Linux-f0c674?style=flat-square&logo=linux&logoColor=111" alt="Linux">
<img src="https://img.shields.io/badge/desktop-GNOME-4a86cf?style=flat-square&logo=gnome&logoColor=white" alt="GNOME">
<img src="https://img.shields.io/badge/GTK-4-4a86cf?style=flat-square&logo=gtk&logoColor=white" alt="GTK 4">
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<p><strong>Your files, local. Any server, in sync.</strong></p>
<p>A GNOME-native desktop companion for keeping complete local mirrors of your accounts. Server agnostic, built with Rust, GTK 4, and Libadwaita.</p>
<p>
<a href="https://github.com/gnacho/nextsync">Website</a>
<a href="https://nextsync.cloudless.club/">Website</a>
·
<a href="https://github.com/gnacho/nextsync/issues">Report an issue</a>
</p>
Expand All @@ -13,6 +13,7 @@
</p>
<p>
<img src="https://img.shields.io/badge/version-0.122.0-6557e8?style=flat-square" alt="Version 0.120.0">
<a href="https://nextsync.cloudless.club/"><img src="https://img.shields.io/badge/web-nextsync.cloudless.club-26a269?style=flat-square" alt="Website"></a>
<img src="https://img.shields.io/badge/platform-Linux-f0c674?style=flat-square&logo=linux&logoColor=111" alt="Linux">
<img src="https://img.shields.io/badge/desktop-GNOME-4a86cf?style=flat-square&logo=gnome&logoColor=white" alt="GNOME">
<img src="https://img.shields.io/badge/GTK-4-4a86cf?style=flat-square&logo=gtk&logoColor=white" alt="GTK 4">
Expand Down
25 changes: 25 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -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.
2 changes: 1 addition & 1 deletion data/io.github.gnacho.nextsync.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -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
37 changes: 37 additions & 0 deletions data/io.github.gnacho.nextsync.metainfo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>io.github.gnacho.nextsync</id>
<name>NextSync</name>
<summary>Your files, local. Any server, in sync</summary>
<developer id="io.github.gnacho">
<name>gnacho</name>
</developer>
<launchable type="desktop-id">io.github.gnacho.nextsync.desktop</launchable>
<url type="homepage">https://github.com/gnacho/nextsync</url>
<url type="bugtracker">https://github.com/gnacho/nextsync/issues</url>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<description>
<p>
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.
</p>
</description>
<categories>
<category>Network</category>
<category>FileTransfer</category>
</categories>
<keywords>
<keyword>Nextcloud</keyword>
<keyword>sync</keyword>
<keyword>cloud</keyword>
<keyword>files</keyword>
</keywords>
<icon type="stock">io.github.gnacho.nextsync</icon>
<content_rating type="oars-1.1"/>
<releases>
<release version="0.122.0" date="2026-08-22"/>
</releases>
</component>
Loading