powered by Jive Software

Smack Android API requirements

So I wanted to bump my Smack from 4.3-heavilydiverged to 4.4, and had to realize that in e98d42790a, the API level is raised from r9 to r21. As I’m currently targeting r14, this is an inacceptable change (for my project).

What is the specific reason for this API bump? Can we still make Smack 4.4.x work on Android 4.x (r14)?

Would it be possible to document the Java API / Android API levels somewhere, e.g. in https://github.com/igniterealtime/Smack/wiki/Smack-Release-Life-Cycle?

Thanks :slight_smile:

It got raised to 19, not 21.

Rest assured that the times where I rolled a dice to determine the minimum required Android API for Smack are long over (In fact, I never did roll a dice).

Not without putting significant work ripping out the parts require newer APIs.

I am not going into an argument if supporting anything below Android API 19 is sensible. But be assured that I believe to be very conservative when raising the minimum required Android API level in Smack. In fact, I believe this is only the second time this was done in many years.

But now it was time. I also note that Smack 4.4, which includes the requirement change, is not released nor is there any ETA on the release. By the time the release eventually happens, you probably really should not support anything below API 19.

Those things are usually documented in the README of the release series. Such a README does currently not exist yet. I really should create one now.

Thanks very much, now I can sleep again at night. I know it can be too much to ask, but a short list of the things that require the new API would have been helpful. Something like “Smack 4.4 core is heavily using Java NIO, which requires r19”.

I’m aware of that. But you expect me to submit my patches to the master branch, so I have to develop against the unreleased 4.4 anyway, or forward-port my patches from 4.3 without testing them.

Unless you are willing to accept feature submissions against 4.3, or to backport my submissions immediately to 4.3, I’m in a very uncomfortable place, and I wanted to reduce the pain of contributing to Smack.

P.S: There is actually an ETA on the 4.4 release in the linked Smack-Release-Life-Cycle wiki page, and it says Q4/2019, which is sufficiently close for me to worry :wink:

I can’t remember stating any such expectation.

There are certain restrictions of which kind of patches should be applied to which branch. Patches for the current stable branch (i.e., the ‘4.3’ branch at the time of writing) should

  • be minimal
  • be bugfixes
  • add no new features
  • introduce no API changes
  • apply “easily” on the master branch

The first line of that pages states

This plan is subject to change. No guarantees are given about the availability of a release.