Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vavr managed to do an incompatible change between 0.10.x and 1.0-alpha #2350

Open
hgschmie opened this issue May 11, 2023 · 2 comments
Open

Comments

@hgschmie
Copy link
Contributor

compiling vavr with 0.9.3 (the default version) and running with 1.0.0-alpha-4 (after actually fixing our test pipeline):

INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR]   TestVavrCollectorFactory.setUp:53 » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrCollectorFactory.setUp:53 » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrCollectorFactory.setUp:53 » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrCollectorFactoryWithDB.<init>:56 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrCollectorFactoryWithDB.<init>:56 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrCollectorFactoryWithDB.<init>:56 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrCollectorFactoryWithDB.<init>:56 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrCollectorFactoryWithDB.<init>:56 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrMapCollectorWithDB.<init>:45 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrMapCollectorWithDB.<init>:45 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrMapCollectorWithDB.<init>:45 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrMapCollectorWithDB.<init>:45 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrMapCollectorWithDB.<init>:45 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrMapCollectorWithDB.<init>:45 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrOptionMapperWithDB.testOptionMappedShouldSucceed » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrOptionMapperWithDB.testOptionMappedWithinObjectIfPresentShouldContainValue » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrOptionMapperWithDB.testOptionMappedWithoutGenericParameterShouldFail » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrOptionMapperWithDB.testOptionMappedWithoutNestedMapperShouldFail » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrOptionMapperWithDB.testOptionWithinObjectIfMissingShouldBeNone » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleMapperWithDB.<init>:37 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrTupleMapperWithDB.<init>:37 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrTupleMapperWithDB.<init>:37 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrTupleMapperWithDB.<init>:37 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrTupleMapperWithDB.<init>:37 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrTupleMapperWithDB.<init>:37 IncompatibleClassChange Method 'io.vavr.collection.List io.vavr.collection.List.range(int, int)' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactory.testBuildRowMapperForTuple1ShouldSucceed:77->testProjectionMapper:123 » IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactory.testBuildRowMapperForTuple2ShouldSucceed:82->testProjectionMapper:123 » IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactory.testBuildRowMapperForTuple3ShouldSucceed:88->testProjectionMapper:123 » IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactory.testBuildRowMapperForTuple4ShouldSucceed:94->testProjectionMapper:123 » IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactory.testBuildRowMapperForTuple5ShouldSucceed:100->testProjectionMapper:123 » IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactory.testBuildRowMapperForTuple6ShouldSucceed:106->testProjectionMapper:123 » IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactory.testBuildRowMapperForTuple7ShouldSucceed:112->testProjectionMapper:123 » IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactory.testBuildRowMapperForTuple8ShouldSucceed:118->testProjectionMapper:123 » IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple1UsingRegisteredRowMapperShouldSucceed » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple1WithNameOnlyUsingColumnMapperShouldSucceed » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple2HavingOnlyOneRowMapperShouldFail » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple2SelectedColumnsShouldSucceed » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple2UsingRegisteredRowMappersShouldSucceed » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple3WithAllSpecifiedColumnsShouldRespectConfiguration » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple3WithExtraSpecifiedColumnShouldSucceed » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple3WithOnlyOneSpecifiedColumnShouldFail » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple3WithoutSpecifiedColumnShouldFail » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrTupleRowMapperFactoryWithDB.testMapTuple4AllColumnsShouldSucceed » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactory.testGetArgumentOfNoneShouldNotBeEmpty:56 IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.none()' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactory.testGetFailedTryArgumentShouldNotBeEmpty:87 IncompatibleClassChange Method 'io.vavr.control.Try io.vavr.control.Try.failure(java.lang.Throwable)' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactory.testGetInvalidValidationArgumentShouldNotBeEmpty:129 IncompatibleClassChange Method 'io.vavr.control.Validation io.vavr.control.Validation.invalid(java.lang.Object)' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactory.testGetLeftEitherArgumentShouldNotBeEmpty:101 IncompatibleClassChange Method 'io.vavr.control.Either io.vavr.control.Either.left(java.lang.Object)' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactory.testGetNonValueArgumentShouldNotBeEmpty:49 IncompatibleClassChange Method 'io.vavr.control.Option io.vavr.control.Option.of(java.lang.Object)' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactory.testGetRightEitherArgumentInferredShouldNotBeEmpty:115 IncompatibleClassChange Method 'io.vavr.control.Either io.vavr.control.Either.right(java.lang.Object)' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactory.testGetRightEitherArgumentShouldNotBeEmpty:108 IncompatibleClassChange Method 'io.vavr.control.Either io.vavr.control.Either.right(java.lang.Object)' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactory.testGetSuccessTryArgumentShouldNotBeEmpty:94 IncompatibleClassChange Method 'io.vavr.control.Try io.vavr.control.Try.failure(java.lang.Throwable)' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactory.testGetValidValidationArgumentShouldNotBeEmpty:122 IncompatibleClassChange Method 'io.vavr.control.Validation io.vavr.control.Validation.valid(java.lang.Object)' must be Methodref constant
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetEitherLeftShouldReturnAllRows » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetEitherRightShouldReturnCorrectRow » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetLazyShouldReturnCorrectRow » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetOptionEmptyShouldReturnAllRows » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetOptionShouldReturnCorrectRow » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetTryFailureShouldReturnAllRows » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetTrySuccessShouldReturnCorrectRow » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetValidationInvalidShouldReturnAllRows » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[ERROR]   TestVavrValueArgumentFactoryWithDB.testGetValidationValidShouldReturnCorrectRow » IncompatibleClassChange Inconsistent constant pool data in classfile for class io/vavr/control/Option. Method 'io.vavr.control.Option none()' at index 47 is CONSTANT_InterfaceMethodRef and should be CONSTANT_MethodRef
[INFO]
[ERROR] Tests run: 68, Failures: 0, Errors: 61, Skipped: 0

same when compiling with vavr 0.10.4 (last official release, from 2021).

options

  • we keep as is, so users on 1.0.0 will not be able to use vavr support
  • we compile with 1.0.0-alpha-4 and force existing users to upgrade their vavr dependency
  • do nothing, as we have exactly zero bug reports so far.

Not sure how active the vavr project is. I am fine with leaving as is and adding a note to the docs.

@stevenschlansker
Copy link
Member

I vote we upgrade to 1.0.0 when final comes out, there should be no reason to use experimental 0.x or alphas at that point.

@stevenschlansker
Copy link
Member

stevenschlansker commented May 22, 2024

@hgschmie , at this point the vavr project seems all but dead, the author has stepped away with no succession plan, and no 1.0 release yet. The website is totally down.

vavr-io/vavr#2756

If we do not see forward motion by the end of 2024, or some other arbitrary deadline, we should consider deprecating vavr support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants