opencloud icon indicating copy to clipboard operation
opencloud copied to clipboard

Production release 4.0.0

Open ScharfViktor opened this issue 1 month ago • 10 comments

Prerequisites

  • [x] bump web
  • [x] bump reva
  • [x] create RC tag https://github.com/opencloud-eu/opencloud/releases/tag/4.0.0-rc.1
  • [x] update introductionVersion - https://github.com/opencloud-eu/opencloud/issues/1920
  • [x] add new production version - https://github.com/opencloud-eu/opencloud/pull/1941

Breaking change

QA Phase

  • [x] Compatibility test between 2.0.5 and 4.0.0 with decomposed fs

  • [x] Compatibility test between 2.0.5 and 4.0.0 with posix fs

  • [x] Performance test @fschade

    • [x] STORAGE_USERS_DRIVER=posix
      • [x] 75vu's, 60m
      • [x] 750vu's, 60m
    • [x] decomposed
      • [x] 75vu's, 60m
      • [x] 750vu's, 60m
  • [x] Documentation test

    • [x] Review documentation
    • [x] Verify all new features documented @Svanvith @Heiko-Pohl https://docs.opencloud.eu/docs/admin/welcome/features
    • [x] Create upgrade documentation @Svanvith @Heiko-Pohl https://github.com/opencloud-eu/docs/pull/527
    • [x] Check installation guides https://docs.opencloud.eu/docs/admin/getting-started @phil-davis
  • [x] e2e tests with different storage

    • [x] decomposed automated see opencloud CI need run with [decomposed] tag - see here https://github.com/opencloud-eu/opencloud/pull/1917
    • [x] decomposeds3 @ScharfViktor - running localy OC_BASE_URL=cloud.opencloud.test RETRY=1 HEADLESS=true PARALLEL=2 pnpm test:e2e:cucumber tests/e2e/cucumber/features/{a11y,admin-settings,file-action,journeys,navigation,search,shares,smoke,spaces,user-settings}
    • [x] posix automated see opencloud CI
    • [x] posix watch_fs enabled automated see opencloud CI
  • [x] Different deployments methods

    • [x] e2e tests agains opencloud-charts @saw-jan
    • [x] docker use https://github.com/opencloud-eu/qa/blob/main/.github/ISSUE_TEMPLATE/docker-compose_test_plan_template.md @ScharfViktor @schweigisito
    • [x] binary @phil-davis do the testing docs - smoke test
    • [x] multitanacy @ScharfViktor
  • [x] different clients

    • [x] desktop
      • [x] desktop linux run auto test @saw-jan
      • [x] desktop linux exploratory testing @jnweiger
      • [x] desktop mac exploratory testing @ScharfViktor
    • [x] android @jnweiger
    • [x] ios exploratory testing @ScharfViktor
  • [x] check docs german translation @jnweiger

    • [x] german translations desktop at 100%
    • [x] added ca. 80 strings to french desktop translations; 12 remaining (beyond me)
  • [x] exploratory testing @jnweiger

Collected bugs

Issues seen in opencloud (3.7.0)

  • [ ] https://github.com/opencloud-eu/opencloud/issues/1794
  • [x] https://github.com/opencloud-eu/opencloud/issues/1833
  • [ ] https://github.com/opencloud-eu/opencloud/issues/1834
  • [ ] https://github.com/opencloud-eu/opencloud/issues/1847
  • [x] https://github.com/opencloud-eu/web/issues/1617
  • [x] https://github.com/opencloud-eu/opencloud/issues/1862
  • [ ] https://github.com/opencloud-eu/opencloud/issues/1865
  • [ ] #1907
  • [ ] https://github.com/opencloud-eu/opencloud/issues/1933
  • [x] https://github.com/opencloud-eu/opencloud/issues/1942

Issues seen in Web UI (3.7.0)

  • [ ] https://github.com/opencloud-eu/web/issues/1608
  • [ ] https://github.com/opencloud-eu/web/issues/1598
  • [x] https://github.com/opencloud-eu/web/issues/1579
  • [x] https://github.com/opencloud-eu/web/issues/1578
  • [ ] https://github.com/opencloud-eu/web/issues/1630
  • [x] https://github.com/opencloud-eu/web/issues/1635
  • [ ] https://github.com/opencloud-eu/web/issues/1675

Issues seen in Desktop Client (3.0.0.1834 ... 1976)

  • [x] https://github.com/opencloud-eu/desktop/issues/645
  • [x] https://github.com/opencloud-eu/desktop/issues/646
  • [ ] https://github.com/opencloud-eu/desktop/issues/647
  • [x] https://github.com/opencloud-eu/desktop/issues/648
  • [ ] https://github.com/opencloud-eu/desktop/issues/651
  • [x] https://github.com/opencloud-eu/desktop/issues/652
  • [x] https://github.com/opencloud-eu/desktop/issues/653
  • [ ] https://github.com/opencloud-eu/desktop/issues/654
  • [x] https://github.com/opencloud-eu/desktop/issues/655
  • [x] https://github.com/opencloud-eu/desktop/issues/656
  • [x] https://github.com/opencloud-eu/desktop/issues/657
  • [ ] https://github.com/opencloud-eu/desktop/issues/678
  • [x] https://github.com/opencloud-eu/desktop/issues/679
  • [x] https://github.com/opencloud-eu/desktop/issues/681
  • [ ] https://github.com/opencloud-eu/desktop/issues/703
  • [ ] https://github.com/opencloud-eu/desktop/issues/704
  • [x] https://github.com/opencloud-eu/desktop/issues/706
  • [x] https://github.com/opencloud-eu/desktop/issues/707
  • [x] https://github.com/opencloud-eu/desktop/issues/708
  • [ ] https://github.com/opencloud-eu/desktop/issues/714

Issues seen in Android (1.0.0)

  • [ ] https://github.com/opencloud-eu/opencloud/issues/1848
  • [ ] https://github.com/opencloud-eu/android/issues/39

After QA Phase ( IT releated )

  • [x] bump version in pkg/version.go
  • [x] Run CI
  • [x] create final tag v4.0.0
  • [x] observe CI Run on tag
  • [x] Merge Release branch into main
  • [x] Create stable-4.0 branch https://github.com/opencloud-eu/opencloud/tree/stable-4.0
  • [x] publish release notes to the docs https://github.com/opencloud-eu/docs/pull/542
  • [x] update demo.opencloud.eu
  • [x] ~~update opencloud version in the bare metal install~~ not needed. It finds automatically new version

After QA Phase ( Marketing / Product / Sales related )

  • [ ] notify marketing that the release is ready @tbsbdr

  • [ ] announce in the public matrix channel

  • [ ] press information @AnneGo137

    • [ ] Social Media @AnneGo137
    • [ ] Blogentry @AnneGo137
    • [ ] Internal meeting (Groupe Pre-Webinar) @db-ot
    • [ ] Partner briefing (Partner should be informed about features, new) @Matthias
  • [ ] Webinar DE & EN @AnneGo137

    • [ ] Präsentation DE @tbsbdr / @db-ot
    • [ ] Präsentation EN @tbsbdr / @db-ot
  • [ ] Website ergänzen @AnneGo137

    • [ ] Features @AnneGo137
    • [ ] Service & Support - New Enterprise Features @tbsbdr
    • [ ] OpenCloud_Benefits.pdf updates @AnneGo137
    • [ ] Welcome Files: Features as media [@tbsbdr
  • [ ] Flyer update @AnneGo137

  • [ ] Sales presentation @Matthias

ScharfViktor avatar Nov 06 '25 08:11 ScharfViktor

Was it planned that the 4.0.0-rc1 was published over the rolling release channel? If it was, would it be possible to add a "stable" or "full-release" tag to the channel? Within github 4.0.0-rc1 is marked as a "pre-release" candidate, while on docker hub you don't differentiate. Maybe even use GHCR so that you don't have to change that much.

marcel-wiechmann avatar Nov 16 '25 18:11 marcel-wiechmann

Thanks for bringing this up!

We intentionally publish release candidates with the -rc suffix so it’s clear that these builds are not meant for production use. The 4.0.0-rc.1 image was pushed for testing, and the suffix should help differentiate it from stable releases.

Thanks for the reminder as well — I’ll post an announcement in the public channel about the testing phase.

ScharfViktor avatar Nov 17 '25 09:11 ScharfViktor

OpenCloud Compose Test Plan — Checklist https://github.com/opencloud-eu/qa/blob/main/.github/ISSUE_TEMPLATE/docker-compose_test_plan_template.md

1. Basic Deployment Tests

  • [x] Test 1.1: Minimal OpenCloud with Traefik

2. Web Office Integration Tests

  • [x] Test 2.1: OpenCloud with Collabora Online

3. Identity Management Tests

  • [x] Test 3.1: OpenCloud with Keycloak and LDAP
  • [ ] Test 3.2: OpenCloud with External IDP (Auto-provisioning)

4. Storage Backend Tests

  • [x] Test 4.1: OpenCloud with S3 Storage (MinIO)

5. Search Integration Tests

  • [x] Test 5.1: OpenCloud with Apache Tika Full-Text Search

6. Monitoring Tests

  • [x] Test 6.1: OpenCloud with Monitoring Enabled

7. Calendar/Contacts Integration Tests

  • [x] Test 7.1: OpenCloud with Radicale

8. External Proxy Tests (nginx)

  • [x] Test 8.1: OpenCloud with External Proxy
  • [x] Test 8.2: Collabora with External Proxy

9. SSL/TLS Configuration Tests

  • [ ] Test 9.1: Let's Encrypt Certificate Configuration
  • [ ] Test 9.2: Custom Certificate Configuration (Development)

10. Additional Services Tests

  • [x] Test 10.1: Email Notifications with SMTP
  • [x] Test 10.2: Antivirus Scanning with ClamAV
  • [x] Test 10.3: Demo Users Creation

11. Complex Integration Tests

  • [ ] Test 11.1: Full Production Stack
  • [ ] Test 11.2: High Availability Test (Collaboration Scaling)

12. Persistence and Data Integrity Tests

  • [ ] Test 12.1: Data Persistence with Docker Volumes
  • [ ] Test 12.2: Data Persistence with Host Paths

13. Logging and Debugging Tests

  • [ ] Test 13.1: Log Driver Configuration
  • [ ] Test 13.2: Traefik Dashboard and Access Logs

14. Security Tests

  • [ ] Test 14.1: INSECURE Flag Impact
  • [ ] Test 14.2: Password Policy Enforcement
  • [ ] Test 14.3: Public Share Password Requirements

15. Upgrade and Migration Tests

  • [ ] Test 15.1: Version Upgrade Test
  • [ ] Test 15.2: Rolling vs Production Image Switch

16. DNS Resolution Tests

  • [ ] Test 16: DNS Resolution Between Services

ScharfViktor avatar Nov 17 '25 14:11 ScharfViktor