It has been decided to revert the decision about fully dropping and blocking 32 bit instances.
We are currently working on:
- making sure that the updater of Nextcloud 26 will not block the updates of 32-bit instances
- reverting the breaking changes introduced so far for Nextcloud 26
- planning the development of testing mechanisms for 32-bit
This article will outline the context and reflections of the decision and share ideas on how we want to improve testing.
History and context 32-bit support
32-bit support has been in decline for several years thanks to the News app, Office CODE app and Matterbridge Talk not supporting it. The employed Nextcloud maintainers don’t prioritise development efforts for 32-bit support and by the company there are no tests done for 32-bit, which means no manual tests (no developer has a 32-bit instance) and no automated tests. This comes at the risk of introducing changes that break 32-bit instances. This is why we - at first - removed the compatibility of Nextcloud with 32-bit from the system requirements documentation for the release of Nextcloud 25.
With Nextcloud 25 we unknowingly introduced breaking changes that affect 32-bit instances, while not blocking the updates or in any other way actively warning administrators of the lack of compatibility.
After heavy complaints on the forum, we sat down with the developers and reflected on the mistakes made and our process and communication, and the outcome of that reflection was that the best way to move forward is to:
- fix the breaking changes in Nextcloud 25 to give everyone one more year to upgrade their hardware
- to block 32-bit instances in the updater for version 26
- to communicate about it with community timely
At this stage we published our previous forum post, announcing we would officially fully drop 32-bit support.
However, after this post, the reflection continued in other layers of the organization. They felt the decision is perhaps a too easy way out - why not take action to create a testing approach instead? Most importantly, the decision is also contradictory to Nextcloud’s overall product vision to support many different types of devices. And last but not least - we love our (homeuser)community and we are fully aware of the fact that removing support for 32bit instances would mean for some of them being forced into buying new hardware. These were the reasons to decide to revert the decision to block updates to 32 bit support.
Roadmap
@Andy and me sat down to come up with a roadmap and plan to prevent situations like we had with the release of Nextcloud 25.
We think the requirements for an acceptable 32-bit support, are the following:
- Software needs to be reliable: Automated tests are in place for code paths that have been problematic in recent past releases, upgrades have to be manually tested
- Maintenance of the code: If issues arise, critical issues need to be solved in a timely manner and new server releases of Nextcloud need to remain compatible with 32-bit.
Automated tests
- Andy and the engineering teams are currently working on collecting the tasks and effort estimates for 32-bit (CI tests + reverting the breaking changes made so far)
- It is unlikely that most tests will be available for the Nextcloud 26 release already
- We will prioritize tests for code paths that had a high impact (like breaking an instance) in the past
- We would appreciate community contributions for the tests
Manually testing of updates
We think it is important that updates also get manually tested. Are there people from community interested in doing such tests? What would you need from us?
We are also looking into if we can run our standard update tests in a virtual environment.
On our Talk instance we also have a dedicated server packager Talk room, where we announce newly published packages for major versions, maintenance releases as well as release candidates, so packagers are aware of it and can do their specific packaging and upgrade testing. We would like to get in touch with the NextcloudPi people and other people providing packages for 32-Bit packages to check if they would like top join that channel to always be up-to-date when it comes to new releases of any kind.
Maintenance
We also aligned on what the scope will be of the code maintenance done by paid maintainers:
- High priority 32-bit issues (such as a totally breaking instance like we had for Nextcloud 25) will be planned and fixed by the maintainers of the code.
- Other bugs and issues may be fixed by the maintainers on best effort basis.
- The maintainers will accept pull requests if the pull requests are neither creating side effects destabilizing other parts of the system nor break nor limit compatibility or features with other infrastructures. For example 32-Bit systems can’t process file larger 2GB yet we would reject a PR limiting file uploads for files larger than 2GB because that would limit functionality for non-32-Bit systems for no reason.
Discussion
I personally hope that the continued discussion led to a decision that better fits the Nextcloud vision and the needs of admins of 32-bit instances, while simultaneously also providing a realistic and good-enough maintenance plan to avoid the problems we saw with the release of Nextcloud 25.
I’m not proud of how wobbly this process was and that we are now reverting an earlier statement made, and I hope it does not give the impression that the previous decision was made almost overnight without good consideration. 32-bit turned out to be a delicate and debatable topic with the key stakeholders having conflicting concerns. My main role in this has been to moderate the discussion, include concerns that were raised by you on the forum, communicate in a timely manner on this forum, and get acceptable compromises on the table. I hope you agree with me that these compromises are acceptable.
With this post I would like to dearly invite people who run 32-bit to get involved, please get in touch with us so we can involve you to create a nice experience for 32-bit users. For example, it would really have an impact if things like the updates get tested manually by community before actual releases take place.
Though we need to put out at this point that this announcement doesn’t automatically mean there will be 32-bit hardware support for ever. Please keep in mind that it could happen that we need to stop it at some point in the future and so we hope you’ll keep that in mind when buying new hardware.