Skip to content

Commit 47fa83c

Browse files
authored
Merge pull request #4 from owncloud/ospo/community-health-v2
docs(ospo): community health rollout v2 — README, agents.md, health files
2 parents 9cfbe63 + f817a34 commit 47fa83c

6 files changed

Lines changed: 197 additions & 24 deletions

File tree

CODE_OF_CONDUCT.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Code of Conduct
2+
3+
This project follows the ownCloud Code of Conduct.
4+
5+
Please read the full Code of Conduct at:
6+
**<https://owncloud.com/contribute/code-of-conduct/>**
7+
8+
By participating in this project, you agree to abide by its terms.

CONTRIBUTING.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Contributing
2+
3+
Thank you for your interest in contributing to this project!
4+
5+
Please read the full contributing guidelines at:
6+
**<https://owncloud.com/contribute/>**
7+
8+
For development setup, coding standards, and pull request process,
9+
see the README in this repository.

README.md

Lines changed: 93 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,111 @@
1-
# Update Testing
1+
# Android Update Testing
22

3-
This project verifies that upgrading from an older version of the app to a newer one does not cause crashes or break functionality.
3+
<!-- OSPO-managed README | Generated: 2026-04-16 | v2 -->
44

5-
The tests in this repository are designed to run within a CI workflow that builds both the older and newer versions for every pull request.
5+
[![License](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](LICENSE) [![ownCloud OSPO](https://img.shields.io/badge/OSPO-ownCloud-blue)](https://kiteworks.com/opensource)
66

7-
## Setup
7+
[![Update Test](https://github.com/owncloud/android-update-testing/actions/workflows/update.yml/badge.svg)](https://github.com/owncloud/android-update-testing/actions/workflows/update.yml)
88

9-
In the `local.properties` file
9+
This repository provides automated tests that verify the ownCloud Android app upgrade path does not cause crashes or break functionality. The test suite installs the curren stable version of the app, performs setup operations (login, file listing, passcode setup), then installs a the current `master` version over the top and verifies that data and settings are preserved. It is designed to run within CI workflows that build both versions nightly.
1010

11-
- Name of the file containing older and newer version. By default: `owncloudSigned1.apk` and `owncloudSigned2.apk`.
12-
- Passcode to set in the app (4 digits)
13-
- Package name
14-
- Appium URL
11+
## Part of Mobile (Android)
1512

16-
## Execution
13+
This repository is part of the QA infrastructure for the [ownCloud Android app](https://github.com/owncloud/android). It ensures that app updates do not introduce crashes, regressions in user data or settings unconsistencies.
1714

18-
The gradlew process launchs the tests with the following parameters:
15+
## Getting Started
16+
17+
1. Configure `local.properties` with APK filenames, passcode, package name, and Appium URL
18+
2. Run the tests with Gradle:
19+
20+
```bash
21+
./gradlew clean test -Dserver="https://myserver:9200" -Dusername=john -Dpassword=mypass -Dcommit=87a6f33
22+
```
1923

2024
- Server URL: ownCloud server to test. Basic auth as 1st auth method.
2125
- Username: available in the server.
2226
- Password: for the username to access.
2327
- Commit: hash to compare against `latest` tag in CI.
2428

25-
Command:
29+
### Test Process
2630

27-
```
28-
./gradlew clean test -Dserver="https://myserver:9200" -Dusername=john -Dpassword=mypass -Dcommit=87a6f33
29-
```
31+
1. Adds example files to the given account
32+
2. Installs the stable version (`owncloudSignedLatest.apk`)
33+
3. Logs in with the given credentials
34+
4. Checks list of files and adds a passcode
35+
5. Installs the app's current `master` version (`owncloudSignedMaster.apk`) over the stable one (without reinstalling)
36+
6. Verifies the passcode, file list, and commit hash in settings
37+
38+
## Documentation
39+
40+
- See this README for usage instructions
41+
- [ownCloud Android app](https://github.com/owncloud/android)
42+
43+
## Community & Support
44+
45+
**[Star](https://github.com/owncloud/android-update-testing)** this repo and **Watch** for release notifications!
46+
47+
- [ownCloud Website](https://owncloud.com)
48+
- [Community Discussions](https://github.com/orgs/owncloud/discussions)
49+
- [Matrix Chat](https://app.element.io/#/room/#owncloud:matrix.org)
50+
- [Documentation](https://doc.owncloud.com)
51+
- [Enterprise Support](https://owncloud.com/contact-us/)
52+
- [OSPO Home](https://kiteworks.com/opensource)
53+
54+
## Contributing
55+
56+
We welcome contributions! Please read the [Contributing Guidelines](CONTRIBUTING.md)
57+
and our [Code of Conduct](CODE_OF_CONDUCT.md) before getting started.
58+
59+
### Workflow
60+
61+
- **Rebase Early, Rebase Often!** We use a rebase workflow. Always rebase on the target branch before submitting a PR.
62+
- **Dependabot**: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly.
63+
- **Signed Commits**: All commits **must** be PGP/GPG signed. See [GitHub's signing guide](https://docs.github.com/en/authentication/managing-commit-signature-verification).
64+
- **DCO Sign-off**: Every commit must carry a `Signed-off-by` line:
65+
```
66+
git commit -s -S -m "your commit message"
67+
```
68+
- **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.
69+
70+
## Security
71+
72+
**Do not open a public GitHub issue for security vulnerabilities.**
73+
74+
Report vulnerabilities at **<https://security.owncloud.com>** -- see [SECURITY.md](SECURITY.md).
75+
76+
Bug bounty: [YesWeHack ownCloud Program](https://yeswehack.com/programs/owncloud-bug-bounty-program)
77+
78+
## License
79+
80+
This project is licensed under the [GPL-3.0](LICENSE).
81+
82+
## About the ownCloud OSPO
83+
84+
The [Kiteworks Open Source Program Office](https://kiteworks.com/opensource), operating under
85+
the [ownCloud](https://owncloud.com) brand, launched on May 5, 2026, to steward the open source
86+
ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance,
87+
community health, and sustainable collaboration between the open source community and
88+
[Kiteworks](https://www.kiteworks.com), which acquired ownCloud in 2023.
89+
90+
- **OSPO Home**: <https://kiteworks.com/opensource>
91+
- **GitHub**: <https://github.com/owncloud>
92+
- **ownCloud**: <https://owncloud.com>
93+
94+
For questions about the OSPO or licensing, contact ospo@kiteworks.com.
95+
96+
### License Migration to Apache 2.0
97+
98+
The OSPO is driving a strategic relicensing of ownCloud repositories toward the
99+
[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), following
100+
the [Apache Software Foundation's third-party license policy](https://www.apache.org/legal/resolved.html).
30101

31-
## Process
102+
Individual repositories will migrate as their audit is completed. The LICENSE file
103+
in each repo reflects its **current** license status (not the target).
32104

33-
1. Add some example files to the given account
34-
2. Install the older version `owncloudSigned1.apk`
35-
3. Log in by using the given credentials
36-
4. Check list of files
37-
5. Add a passcode to the app
38-
6. Install the newest version over the older (without reinstalling)
39-
7. Verifies the passcode, the list of files, and the commit hash
105+
**Current license: GPL-3.0** (Category X per Apache policy -- cannot be included in Apache-2.0 works).
40106

41-
(open to add more checks)
107+
Migration prerequisites for this repository:
42108

109+
- **CLA/DCO coverage**: All past contributors must have signed agreements permitting relicensing
110+
- **Copyleft dependency audit**: All GPL dependencies must be replaced or isolated
111+
- **Complete relicensing**: GPL-3.0 is a strong copyleft license; migration requires full relicensing of all files

SECURITY.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Security Policy
2+
3+
## Reporting a Vulnerability
4+
5+
**Do NOT open a public GitHub issue for security vulnerabilities.**
6+
7+
Please report security issues responsibly via:
8+
**<https://security.owncloud.com>**
9+
10+
You can also report vulnerabilities through our YesWeHack bug bounty program:
11+
**<https://yeswehack.com/programs/owncloud-bug-bounty-program>**

SUPPORT.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Support
2+
3+
For support with this project, please use the following channels:
4+
5+
- **Enterprise Support**: <https://owncloud.com/contact-us/>
6+
- **Community discussions**: https://github.com/orgs/owncloud/discussions
7+
- **Matrix Chat**: <https://app.element.io/#/room/#owncloud:matrix.org>
8+
- **Documentation**: <https://doc.owncloud.com>
9+
10+
Please do not use GitHub issues for general support questions.

agents.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# AI Agent Guidelines for Android Update Testing
2+
3+
This file provides context for AI coding agents (Claude Code, GitHub Copilot, Cursor, etc.) working in this repository.
4+
5+
## Repository Overview
6+
- **Product family:** Mobile (Android)
7+
- **Primary language(s):** Java
8+
- **Build system:** Gradle
9+
- **Test framework:** JUnit, Appium
10+
- **CI system:** GitHub Actions
11+
12+
## Architecture & Key Paths
13+
- `src/` - Test source code
14+
- `server/` - Server setup scripts
15+
- `build.gradle` - Gradle build configuration
16+
- `gradle/` - Gradle wrapper
17+
- `runAppium.sh` - Appium server launcher
18+
- `local.properties` - Local configuration (APK names, passcode, package name, Appium URL)
19+
20+
## Development Conventions
21+
- **Branching:** main
22+
- **Commit messages:** DCO sign-off required (`git commit -s`)
23+
- **Code style:** No specific linter configured
24+
- **PR process:** Open a PR against main. All CI checks must pass.
25+
26+
## Build & Test Commands
27+
```bash
28+
# Build
29+
./gradlew build
30+
31+
# Test
32+
./gradlew clean test -Dserver="https://myserver:9200" -Dusername=john -Dpassword=mypass -Dcommit=87a6f33
33+
```
34+
35+
## Important Constraints
36+
- All code contributions must be compatible with the **GPL-3.0** license
37+
- 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.
38+
- Do not introduce new dependencies without discussion in an issue first
39+
- Tests require a running Appium server and an Android device/emulator
40+
- Tests require two APK files (older and newer versions) and a running ownCloud server
41+
42+
43+
## OSPO Policy Constraints
44+
45+
### GitHub Actions
46+
- **Only** use actions owned by `owncloud`, created by GitHub (`actions/*`), verified on the GitHub Marketplace, or verified by the ownCloud Maintainers.
47+
- Pin all actions to their full commit SHA (not tags): `uses: actions/checkout@<SHA> # vX.Y.Z`
48+
- Never introduce actions from unverified third parties.
49+
50+
### Dependency Management
51+
- Dependabot is configured for automated dependency updates.
52+
- Review and merge Dependabot PRs as part of regular maintenance.
53+
- Do not introduce new dependencies without discussion in an issue first.
54+
55+
### Git Workflow
56+
- **Rebase policy**: Always rebase; never create merge commits. Use `git pull --rebase` and `git rebase` before pushing.
57+
- **Signed commits**: All commits **must** be PGP/GPG signed (`git commit -S -s`).
58+
- **DCO sign-off**: Every commit needs a `Signed-off-by` line (`git commit -s`).
59+
- **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.
60+
61+
## Context for AI Agents
62+
- Match existing code style
63+
- Do not refactor unrelated code in the same PR
64+
- Write tests for new functionality
65+
- Keep PRs focused and atomic
66+
- This is a focused test repo - changes should relate to update/upgrade testing only

0 commit comments

Comments
 (0)