-
Notifications
You must be signed in to change notification settings - Fork 3.1k
docs(ospo): community health rollout v2 — README, agents.md, health files #4873
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| # Code of Conduct | ||
|
|
||
| This project follows the ownCloud Code of Conduct. | ||
|
|
||
| Please read the full Code of Conduct at: | ||
| **<https://owncloud.com/contribute/code-of-conduct/>** | ||
|
|
||
| By participating in this project, you agree to abide by its terms. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,35 +1,112 @@ | ||
| # ownCloud Android App | ||
|
|
||
| <!-- OSPO-managed README | Generated: 2026-04-16 | v2 --> | ||
|
|
||
| [](LICENSE.txt) [](https://kiteworks.com/opensource) | ||
|
|
||
| [](https://github.com/owncloud/android/actions/workflows/android-unit-tests.yml) [](https://github.com/owncloud/android/actions/workflows/android-instrumented-data-tests.yml) [](https://github.com/owncloud/android/actions/workflows/detekt.yml) [](https://github.com/owncloud/android/actions/workflows/conventional-commits.yml) | ||
|
|
||
| # [ownCloud](https://owncloud.org) Android app | ||
| The ownCloud Android app enables users to access, sync, and share files stored on their ownCloud server directly from Android devices. Built with Kotlin, it supports ownCloud Infinite Scale (oCIS) and ownCloud 10 servers, featuring file browsing, photo galleries, Spaces, sharing, passcode lock, and biometric authentication. The app is available on: | ||
|
|
||
| <a href="https://play.google.com/store/apps/details?id=com.owncloud.android"><img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" height="75"></a><a href="https://f-droid.org/packages/com.owncloud.android/"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" height="75"></a> | ||
|
|
||
| | <img src="docs_resources/filelist_device.png"> | <img src="docs_resources/photos_device.png"> | <img src="docs_resources/share_device.png"> | <img src="docs_resources/spaces_device.png"> | | ||
| | ---------------------------------------------- | -------------------------------------------- | ------------------------------------------- | ------------------------------------------- | | ||
| ## Part of Mobile (Android) | ||
|
|
||
| This is the official [ownCloud Android app](https://github.com/owncloud/android), the primary mobile client for Android users. It connects to both [ownCloud Infinite Scale (oCIS)](https://github.com/owncloud/ocis) and [ownCloud Server (Classic)](https://github.com/owncloud/core). | ||
|
|
||
| ## Getting Started | ||
|
|
||
| 1. Read [SETUP.md](https://github.com/owncloud/android/blob/master/SETUP.md) for development environment setup | ||
| 2. Fork the repository and clone it locally | ||
| 3. Open the project in Android Studio | ||
| 4. Build and run using `./gradlew assembleDebug` | ||
|
|
||
| ### Beta Testing | ||
|
|
||
| - **Play Store:** Download the app from Play Store, scroll down to the beta section, and tap "I'm in" | ||
| - **F-Droid:** Open the ownCloud tab in F-Droid and download the latest beta version | ||
|
|
||
| ## Documentation | ||
|
|
||
| - [SETUP.md](https://github.com/owncloud/android/blob/master/SETUP.md) - Development setup guide | ||
| - [CONTRIBUTING.md](CONTRIBUTING.md) - Contribution guidelines | ||
| - [CHANGELOG.md](https://github.com/owncloud/android/blob/master/CHANGELOG.md) - Release history | ||
| - [ownCloud documentation](https://doc.owncloud.com) | ||
|
|
||
| ## Community & Support | ||
|
|
||
| **[Star](https://github.com/owncloud/android)** this repo and **Watch** for release notifications! | ||
|
|
||
| - [ownCloud Website](https://owncloud.com) | ||
| - [Community Discussions](https://github.com/orgs/owncloud/discussions) | ||
| - [Matrix Chat](https://app.element.io/#/room/#owncloud:matrix.org) | ||
| - [Documentation](https://doc.owncloud.com) | ||
| - [Enterprise Support](https://owncloud.com/contact-us/) | ||
| - [OSPO Home](https://kiteworks.com/opensource) | ||
|
|
||
| ## Contributing | ||
|
|
||
| We welcome contributions! Please read the [Contributing Guidelines](CONTRIBUTING.md) | ||
| and our [Code of Conduct](CODE_OF_CONDUCT.md) before getting started. | ||
|
|
||
| ### Workflow | ||
|
|
||
| - **Rebase Early, Rebase Often!** We use a rebase workflow. Always rebase on the target branch before submitting a PR. | ||
| - **Dependabot**: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly. | ||
| - **Signed Commits**: All commits **must** be PGP/GPG signed. See [GitHub's signing guide](https://docs.github.com/en/authentication/managing-commit-signature-verification). | ||
| - **DCO Sign-off**: Every commit must carry a `Signed-off-by` line: | ||
| ``` | ||
| git commit -s -S -m "your commit message" | ||
| ``` | ||
| - **GitHub Actions Policy**: Workflows may only use actions that are (a) owned by `owncloud`, (b) created by GitHub (`actions/*`), or (c) verified in the GitHub Marketplace. | ||
|
|
||
| ## Translations | ||
|
|
||
| Help translate this project on Transifex: | ||
| **<https://explore.transifex.com/owncloud-org/owncloud-android/>** | ||
|
|
||
| Please submit translations via Transifex -- do not open pull requests for translation changes. | ||
|
|
||
| ## Security | ||
|
|
||
| **Do not open a public GitHub issue for security vulnerabilities.** | ||
|
|
||
| Report vulnerabilities at **<https://security.owncloud.com>** -- see [SECURITY.md](SECURITY.md). | ||
|
|
||
| Bug bounty: [YesWeHack ownCloud Program](https://yeswehack.com/programs/owncloud-bug-bounty-program) | ||
|
|
||
| ## License | ||
|
|
||
| ## Join development! | ||
| This project is licensed under the [GPL-2.0](LICENSE.txt). | ||
|
|
||
| **Start contributing:** Make sure you read [SETUP.md](https://github.com/owncloud/android/blob/master/SETUP.md) when you start working on this project. Basically: Fork this repository and contribute back using pull requests to the master branch. | ||
| Easy starting points are also reviewing [pull requests](https://github.com/owncloud/android/pulls) and working on [contributions are welcome](https://github.com/owncloud/android/issues?q=is%3Aopen+is%3Aissue+label%3A%22Contributions+are+welcome%22). | ||
| ## About the ownCloud OSPO | ||
|
|
||
| **Forum:** [#Android](https://central.owncloud.org/c/android) | ||
| The [Kiteworks Open Source Program Office](https://kiteworks.com/opensource), operating under | ||
| the [ownCloud](https://owncloud.com) brand, launched on May 5, 2026, to steward the open source | ||
| ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance, | ||
| community health, and sustainable collaboration between the open source community and | ||
| [Kiteworks](https://www.kiteworks.com), which acquired ownCloud in 2023. | ||
|
|
||
| **License:** [GPLv2](https://github.com/owncloud/android/blob/master/LICENSE.txt) | ||
| - **OSPO Home**: <https://kiteworks.com/opensource> | ||
| - **GitHub**: <https://github.com/owncloud> | ||
| - **ownCloud**: <https://owncloud.com> | ||
|
|
||
| ## Join testing! | ||
| For questions about the OSPO or licensing, contact ospo@kiteworks.com. | ||
|
|
||
| If you are interested in testing the new features before being released and give us your feedback, please try out our beta channels: | ||
| ### License Migration to Apache 2.0 | ||
|
|
||
| **Play Store** | ||
| The OSPO is driving a strategic relicensing of ownCloud repositories toward the | ||
| [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), following | ||
| the [Apache Software Foundation's third-party license policy](https://www.apache.org/legal/resolved.html). | ||
|
|
||
| 1. Download ownCloud app from Play Store. | ||
| 2. Go to ownCloud tab in Play Store and scroll down to the end of the view. | ||
| 3. Press the **I'M IN** button to join the beta program and your final app will be replaced with the beta one. | ||
| Individual repositories will migrate as their audit is completed. The LICENSE file | ||
| in each repo reflects its **current** license status (not the target). | ||
|
|
||
| Note: If you want to use the ownCloud production version you have to leave the beta program, uninstall the app, and reinstall the production version. | ||
| **Current license: GPL-2.0** (Category X per Apache policy -- cannot be included in Apache-2.0 works). | ||
|
|
||
| **F-Droid** | ||
| Migration prerequisites for this repository: | ||
|
|
||
| 1. Go to ownCloud tab in F-Droid. | ||
| 2. Open versions section. | ||
| 3. Download the latest version that contains beta in the name. | ||
| - **CLA/DCO coverage**: All past contributors must have signed agreements permitting relicensing | ||
| - **Copyleft dependency audit**: All GPL dependencies must be replaced or isolated | ||
| - **KDE heritage review**: Any code with KDE-era copyrights requires legal analysis | ||
| - **Complete relicensing**: GPL-2.0 is a strong copyleft license; migration requires full relicensing of all files | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # Security Policy | ||
|
|
||
| ## Reporting a Vulnerability | ||
|
|
||
| **Do NOT open a public GitHub issue for security vulnerabilities.** | ||
|
|
||
| Please report security issues responsibly via: | ||
| **<https://security.owncloud.com>** | ||
|
|
||
| You can also report vulnerabilities through our YesWeHack bug bounty program: | ||
| **<https://yeswehack.com/programs/owncloud-bug-bounty-program>** |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| # Support | ||
|
|
||
| For support with this project, please use the following channels: | ||
|
|
||
| - **Enterprise Support**: <https://owncloud.com/contact-us/> | ||
| - **Community discussions**: https://github.com/orgs/owncloud/discussions | ||
| - **Matrix Chat**: <https://app.element.io/#/room/#owncloud:matrix.org> | ||
| - **Documentation**: <https://doc.owncloud.com> | ||
|
|
||
| Please do not use GitHub issues for general support questions. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| # AI Agent Guidelines for Android | ||
|
|
||
| This file provides context for AI coding agents (Claude Code, GitHub Copilot, Cursor, etc.) working in this repository. | ||
|
|
||
| ## Repository Overview | ||
| - **Product family:** Mobile (Android) | ||
| - **Primary language(s):** Kotlin | ||
| - **Build system:** Gradle | ||
| - **Test framework:** JUnit (Android Unit Tests, Instrumented Tests) | ||
| - **CI system:** GitHub Actions | ||
|
|
||
| ## Architecture & Key Paths | ||
| - `owncloudApp/` - Main Android application module | ||
| - `owncloudDomain/` - Domain layer (business logic, use cases) | ||
| - `owncloudData/` - Data layer (repositories, data sources) | ||
| - `owncloudComLibrary/` - Common library module | ||
| - `owncloudTestUtil/` - Test utilities | ||
| - `build.gradle` - Root Gradle build file | ||
| - `gradle/` - Gradle wrapper | ||
| - `config/` - Build configuration | ||
| - `fastlane/` - Fastlane deployment configuration | ||
| - `doc/` - Developer documentation | ||
| - `SETUP.md` - Development environment setup | ||
| - `CONTRIBUTING.md` - Contribution guidelines | ||
| - `CHANGELOG.md` - Release history | ||
|
|
||
| ## Development Conventions | ||
| - **Branching:** master | ||
| - **Commit messages:** DCO sign-off required (`git commit -s`) | ||
| - **Code style:** Detekt (Kotlin linter), EditorConfig | ||
| - **PR process:** Open a PR against master. All CI checks must pass. | ||
|
|
||
| ## Build & Test Commands | ||
| ```bash | ||
| # Build | ||
| ./gradlew assembleDebug | ||
|
|
||
| # Test (unit) | ||
| ./gradlew testDebugUnitTest | ||
|
|
||
| # Test (instrumented) | ||
| ./gradlew connectedDebugAndroidTest | ||
|
|
||
| # Lint | ||
| ./gradlew detekt | ||
| ``` | ||
|
|
||
| ## Important Constraints | ||
| - All code contributions must be compatible with the **GPL-2.0** license | ||
| - Do not introduce new **copyleft-licensed dependencies** (GPL, AGPL, LGPL, MPL) without explicit discussion in an issue first. This is especially important for repos migrating to Apache 2.0. | ||
| - Do not introduce new dependencies without discussion in an issue first | ||
| - Minimum SDK version is 24 (Android 7.0), target SDK is 35 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Target SDK is 36 and the minimum SKD version will be updated in the next release (4.9)
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO, we should change the target SDK when the release is out, not before. |
||
| - The app uses a clean architecture pattern with domain/data/presentation layers | ||
|
|
||
|
|
||
| ## OSPO Policy Constraints | ||
|
|
||
| ### GitHub Actions | ||
| - **Only** use actions owned by `owncloud`, created by GitHub (`actions/*`), verified on the GitHub Marketplace, or verified by the ownCloud Maintainers. | ||
| - Pin all actions to their full commit SHA (not tags): `uses: actions/checkout@<SHA> # vX.Y.Z` | ||
| - Never introduce actions from unverified third parties. | ||
|
|
||
| ### Dependency Management | ||
| - Dependabot is configured for automated dependency updates. | ||
| - Review and merge Dependabot PRs as part of regular maintenance. | ||
| - Do not introduce new dependencies without discussion in an issue first. | ||
|
|
||
| ### Git Workflow | ||
| - **Rebase policy**: Always rebase; never create merge commits. Use `git pull --rebase` and `git rebase` before pushing. | ||
| - **Signed commits**: All commits **must** be PGP/GPG signed (`git commit -S -s`). | ||
| - **DCO sign-off**: Every commit needs a `Signed-off-by` line (`git commit -s`). | ||
| - **Conventional Commits & Squash Merge**: Use the [Conventional Commits](https://www.conventionalcommits.org/) format where the repository enforces it. Many repos use squash merge, where the PR title becomes the commit message on the default branch — apply Conventional Commits format to PR titles as well. A reusable GitHub Actions workflow enforces this. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In the Android repo, we are not using conventional commits for PR titles and squash merge. Should we adapt it? 🤔
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd welcome this - we want to have a consistent process on all repos - thank you
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We'll adapt the PR titles to ConCom and so on, not a problem. Honestly, i'm not a fan of squashing, it's something that should not make difference. Will think about it. |
||
|
|
||
| ## Context for AI Agents | ||
| - Match existing code style | ||
| - Do not refactor unrelated code in the same PR | ||
| - Write tests for new functionality | ||
| - Keep PRs focused and atomic | ||
| - Follow the existing multi-module architecture (app/domain/data separation) | ||
| - Use Kotlin idioms consistent with the existing codebase | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Images removed from README. Is it OK?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd recover them as app screenshots