I'm wondering if this version change is the right one. The semver.org website defines the rules in terms of backwards compatible changes that are internal vs public.
Unfortunately, Java's "public" definition is overloaded, in its use in UIMA: - APIs intended for use by the public - APIs not intended for use by the public, but which need to be public because they're referenced from different packages in Java, and no subclass relationship exists. We control some of this by having packages that have the word "impl" or "internal" in them - these are excluded in the semantic versioning checking already. In the current build of uimaj trunk, we are getting two "non backward compatible" detections (which would, strictly speaking, require changing the "X" in "X.Y.Z" version). These are both more of the "internal" backwards compatible kind. One is a mistake in the definition of a constant that's likely not used by users, and if used, would not work anyway - see UIMA-4565. The other is adding some more checking and therefore, and new error message. The error messages are put into CASRuntimeException as constants, and this is by default included in the semantic version checking. I think it is an internal housekeeping thing for error messages, and not really intended for use by the public; it is "public" only due to Java rules. I'd like to add it to the exclude list, treating it like "impl" and "internal". So - the upshot of all this, if people agree, is that the semantic versioning would not require moving from 2.8.1 -> 2.9.0; we could keep things at 2.8.2. I think that would be more consumable by our user community, because the changes ought to be invisible (other than bugs being fixed) to them, and not require them to change/adapt their code (the one exception being UIMA-AS which we would do, to handle UIMA-4743). What do others think? -Marshall On 7/15/2016 9:54 AM, Marshall Schor (JIRA) wrote: > Marshall Schor created UIMA-5014: > ------------------------------------ > > Summary: uimaj - change next release version to 2.9.0 from 2.8.2 > Key: UIMA-5014 > URL: https://issues.apache.org/jira/browse/UIMA-5014 > Project: UIMA > Issue Type: Task > Components: Core Java Framework > Reporter: Marshall Schor > Assignee: Marshall Schor > Priority: Minor > > > Semantic versioning fails because we introduce a new error message. I'm not > sure that qualifies, but the rules say that violates the > increment-the-3rd-digit policy. > > Also, we'll be releasing a bug fix for binary delta cas serialization which > produces an incompatible serialized form not readable by old uima versions. > This will most likely be completely hidden by an update to uima-as, but is > another reason to bump the middle number. See UIMA-4743 > > > > -- > This message was sent by Atlassian JIRA > (v6.3.4#6332) >
