Release Mockito 2.0 #123

Closed
szczepiq opened this Issue Nov 22, 2014 · 46 comments

Projects

None yet

10 participants

@szczepiq
Member
szczepiq commented Nov 22, 2014 edited

Incompatible changes:

  • stop producing mockito-all #153
  • stop depending on hamcrest internally #154
  • use newer hamcrest #232
  • make the anyXxx and any(Xxx) matchers intuitive #134, #194
  • fix the site links
  • push cglib mockmaker to a separate jar #248
  • stop using ant for producing OSGi bundles. No more ant in the build #249
  • remove jars from source distribution #250
  • perhaps introduce is() matcher #246
  • richer and smarter stubbing #303
  • support java8 features for capturing arguments and matchers
  • make the JUnitRule and the runner verbose
  • ensure release notes can be neatly generated for the RC #582

Possibly compatible (and hence, could be released pre-2.0 if needed)

  • drop deprecated code
  • unincubate API
  • drop serialVersionUID
@szpak
Member
szpak commented Nov 22, 2014

Is it still planned for 2.0 to give users an option to use an alternative to cglib (like Byte Buddy)?

@szczepiq
Member

This kind of feature can be added any time (e.g. it's not a backwards-incompatible change). It's just someone needs to implement it :)

So short answer is 'no', it's not planned for 2.0 (but I would love to have this feature soon)

@bric3
Contributor
bric3 commented Nov 24, 2014

If possible I would really like to replace CGLIB by bytebuddy.

I wanted to craft an external MockMaker but I'm way too much overwhelmed at the moment. The code exists in my clone though.

@szczepiq
Member

@bric3, you mean that you're keen on changing default proxy mechanism in 2.0? I'm fine with this :) I do want to publish 2.0 this year though and I won't be very active it this part of the code. So, if you make it, it can be included :)

@bric3
Contributor
bric3 commented Nov 24, 2014

@szczepiq You mean by the end of 2014 ?

What I hoped was to build a mockmaker that could be tested on the 1.x. But the code may replace CGLIB now if necessary. Beta have to be tested by other people though, I especially think about uncommon environment like OSGI, etc...

@szczepiq
Member

1>You mean by the end of 2014 ?

haha, yeah ;)

What I hoped was to build a mockmaker that could be tested on the 1.x.

Like an opt-in feature for 1.x?

I definitely think that given we have the bytebuddy impl of MockMaker, we
should make it conveniently pluggable instead of just replacing cglib
completely. You mentioned earlier that you had the ByteBuddy MockMaker
working with Mockito test suite?

Cheers!

On Mon, Nov 24, 2014 at 4:18 PM, Brice Dutheil notifications@github.com
wrote:

You mean by the end of 2014 ?

What I hoped was to build a mockmaker that could be tested on the 1.x. But
the code may replace CGLIB now if necessary. Beta have to be tested by
other people though, I especially think about uncommon environment like
OSGI, etc...

Reply to this email directly or view it on GitHub
#123 (comment).

Szczepan Faber
Core dev@gradle; Founder@mockito

@bric3
Contributor
bric3 commented Nov 24, 2014

What I hoped was to build a mockmaker that could be tested on the 1.x.

Like an opt-in feature for 1.x?

Yes. But, meanwhile replacing CGLIB in mockito 2.0.

You mentioned earlier that you had the ByteBuddy MockMaker working with Mockito test suite?

Yes it does. I just would like to ensure it works with uncommon environment like OSGI.

@szczepiq
Member

Do you think it is worthwhile to keep support for cglib once we have
bytebuddy?

Do you think we should shade bytebuddy? What dependencies bytebuddy brings?

On Mon, Nov 24, 2014 at 6:26 PM, Brice Dutheil notifications@github.com
wrote:

What I hoped was to build a mockmaker that could be tested on the 1.x.
Like an opt-in feature for 1.x?

Yes. But, meanwhile replacing CGLIB in mockito 2.0.

You mentioned earlier that you had the ByteBuddy MockMaker working with
Mockito test suite?

Yes it does. I just would like to ensure it works with uncommon
environment like OSGI.

Reply to this email directly or view it on GitHub
#123 (comment).

Szczepan Faber
Core dev@gradle; Founder@mockito

@bric3
Contributor
bric3 commented Jan 2, 2015

No I don't think it is necessary, however we can make a CGLIB mock maker, for people that may depend on it.

@bric3 bric3 added this to the 2.0 milestone Jan 21, 2015
@raphw
Member
raphw commented Jul 10, 2015

I am curious: Do you guys have a time-line for the 2.0 release? I am more than happy to support any code-generation releated issues. However, my vacation is approaching so I will be gone for a couple of weeks starting mid-August.

In particular, I wonder you guys wanted to try integrating Byte Buddy 0.7 with support for generic type retention already in 2.0 which I hope to complete before my vacation. One word of warning: Generic types are awefully complex. Byte Buddy needs to parse stringified type information and resolve the full type hierarchy, i.e. bind type variables of super types / interfaces to their actual values in order to appropriately resolve a type variable's value while dealing with the possibility of raw types and potentially illegally formatted generic types (the JVM does not verify generic type infromation which simply exists as meta data). There is a chance for corner case errors even though I isolated the functionality pretty much to fall back to type erasure if any illegal type information is disovered. At the same time, mocks would behave better when a generic type is read by a class processing a mock.

@szczepiq
Member

It must happen in 2015. I hope we are ready in the next few months. In
theory, there's not much left work :)

Cheers!

On Fri, Jul 10, 2015 at 5:31 AM, Rafael Winterhalter <
notifications@github.com> wrote:

I am curious: Do you guys have a time-line for the 2.0 release? I am more
than happy to support any code-generation releated issues. However, my
vacation is approaching so I will be gone for a couple of weeks starting
mid-August.


Reply to this email directly or view it on GitHub
#123 (comment).

Szczepan Faber
Founder mockito.org; Core dev gradle.org
tweets as @szczepiq; blogs at blog.mockito.org

@bric3
Contributor
bric3 commented Jul 10, 2015

I think mockito 2.0 is nearly in shape to be released, most work should go in polishing remaining bits of the public API. IMHO current byte buddy version is fine, and already provide subtitle but needed enhancements.

More specifically on generics I believe current support is OK, after all mockito is a TDD tool for a rapid feedback loop, both on the dev workstation and the ci bots. I believe current generics support in the deepstubs answer is enough. About the issue you mention the support class I wrote is probably incomplete but enough, and I agree parsing this metadata is hard. Anyway at the moment if any extended support should be provided on this front it should be provided via a mockmaker plugin.

@raphw
Member
raphw commented Jul 15, 2015

Thanks for the info. I just released Byte Buddy 0.7 but I recommend you to not yet update. Generic types are tricky and I already found a corner case in the bridge method resolution that does not work. I'll try to make it stable until the mid of August, though.

@juherr juherr referenced this issue in powermock/powermock Sep 2, 2015
Closed

PowerMock is not working with ByteBuddy #579

@davidkarlsen
Contributor

Any guess on when 2.0 will be released?

@szczepiq
Member

It's been silent for past couple of months, everybody busy, etc. Since
yesterday, I'm focusing my spare time on Mockito. I will not stop until 2.0
is out. We cannot guarantee any dates but 2.0 must be released in 2015.

On Sat, Sep 19, 2015 at 8:40 AM, David J. M. Karlsen <
notifications@github.com> wrote:

Any guess on when 2.0 will be released?


Reply to this email directly or view it on GitHub
#123 (comment).

Szczepan Faber
Founder mockito.org; Core dev gradle.org
tweets as @szczepiq; blogs at blog.mockito.org

@szczepiq szczepiq added the epic label Oct 10, 2015
@patspam
patspam commented Nov 10, 2015

Any updates on when we might see a 2.0 release?

@raphw
Member
raphw commented Nov 10, 2015

2015 is soon over ;) At some point, we need to do a cut in features. I think everybody is quite budy right now. As always, the time before Christmas are busy month for consultant work.

@szczepiq
Member

Soon. This year for sure. Sorry I was distracted! We will probably deliver
2.0 with what we have, no new fancy features ;)
On Nov 10, 2015 4:52 AM, "Rafael Winterhalter" notifications@github.com
wrote:

2015 is soon over ;) At some point, we need to do a cut in features. I
think everybody is quite budy right now. As always, the time before
Christmas are busy month for consultant work.


Reply to this email directly or view it on GitHub
#123 (comment).

@skabashnyuk

Can this task #300 be included in 2.0 release?

@ChristianSchwarz
Contributor

Feel free to add #374 to the todo list

@wenerme
wenerme commented Apr 7, 2016

2.0 is coming so slow.

@szczepiq
Member
szczepiq commented Apr 7, 2016

It's way too slow. I'm on it. Thank you guys for pushing.

@ChristianSchwarz
Contributor

@szczepiq How can we/the community support the mockito core team ?

@szczepiq
Member
szczepiq commented Apr 9, 2016

@szczepiq https://github.com/szczepiq How can we/the community support
the mockito core team ?

You already are. You guys are great. Thank you for patience and pushing us
to deliver.

The lagging of beta is my fault. I've started the beta cycle and I should
have completed it. I'm back in the game, though.

Once 2.x final is out we need clarify how community can drive supporting
and maintaining Mockito.

Note that Mockito is continuously delivered so you can open PR to change
the version to "2.1.0", and that's it :)

Cheers!


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#123 (comment)

@davidkarlsen
Contributor

@szczepiq I left a pull request for removing deprecated code which is an 2.0 milestone issue - can you pull it/looks good?

@szczepiq
Member

I haven't reviewed yet. THANKS!
On Sun, Apr 10, 2016 at 03:12 David J. M. Karlsen notifications@github.com
wrote:

@szczepiq https://github.com/szczepiq I left a pull request for
removing deprecated code which is an 2.0 milestone issue - can you pull
it/looks good?


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#123 (comment)

@TimvdLippe
Contributor

Per Mockito developers discussion:

We want to target publishing the release on July 31st with a release candidate on June 30th.

There is one issue which must be resolved for that, which is #194. Other than that I just found 1 minor TODO in the Mockito documentation. The other issues can be fixed in a later minor version.

@skabashnyuk

@TimvdLippe what about #300?

@TimvdLippe
Contributor

@skabashnyuk I think that we still want to do this, but is not a blocker for the release. We must do it when we have time, but it is okay in my opinion to release it in a later minor version. I have to be honest that I was not participating in the original discussion so I do not know the exact details. @bric3 is the man to talk to :)

@bric3
Contributor
bric3 commented Jun 24, 2016 edited

@TimvdLippe @skabashnyuk Humm I think we should really focus energy on mockito 2, TestNG could come later.

@skabashnyuk
skabashnyuk commented Jun 25, 2016 edited

TestNG could come later.

@bric3 No problem. But why this can't be done in parallel? Code is ready, looks like this is an infrastructure-deployment issue. Or you are planning to do something bigger than just deploy artifacts?

@TimvdLippe
Contributor

@skabashnyuk Currently we are focused on releasing Mockito 2.0. This leaves little to no time for other issues sadly. If you are able to configure the deployment, we are happy to accept your pull request! We can devote some of our time to the TestNG issue after we have released Mockito 2.0.

@TimvdLippe TimvdLippe self-assigned this Jul 7, 2016
@szczepiq
Member

Some update.

We're not ready for the release but there's good momentum. Let's plan out
what else needs to be done (announcement information, really documentation
around why to upgrade and how, solid plan what's next after the release
candidate, etc.).

I'm confident the RC will be out in August. I plan to announce everywhere
that we plan RB in August. If we don't meet the date there will high degree
of shame ;) Thoughts?

On Sat, Jun 25, 2016 at 3:59 AM, Tim van der Lippe <notifications@github.com

wrote:

@skabashnyuk https://github.com/skabashnyuk Currently we are focused on
releasing Mockito 2.0. This leaves little to no time for other issues
sadly. If you are able to configure the deployment, we are happy to accept
your pull request! We can devote some of our time to the TestNG issue after
we have released Mockito 2.0.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#123 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/AABgp8m2jG-9Rj7USJ1V2s6GJNHLzbdwks5qPQodgaJpZM4C_fdm
.

Szczepan Faber
Founder @ mockito.org | Twitter @ szczepiq
Author @ https://www.linkedin.com/today/author/6016386

@bric3
Contributor
bric3 commented Aug 2, 2016

I think most of the work should be focused on the upgrade guide, there's not much left for 2.0, follow up tasks can be completed in 2.1

@TimvdLippe
Contributor

I think we can publish the release candidate while working on the actual upgrade guide (state this in the github release for users to follow). The only two issues that are non-documentation are #384 with PR #527 of @szczepiq and #489 with PR #491 of myself. #527 has some feedback to be processed and #491 is more of a discussion regarding the runner.

Once these two are resolved, we can merge #483 and the release candidate is published 🎉

For an up-to-date status, see https://waffle.io/mockito/mockito and https://github.com/mockito/mockito/milestone/1

@szczepiq
Member
szczepiq commented Aug 8, 2016

This is great stuff!!! Thanks a lot Tim for pushing the release forward & organizing it so well.

I'm making good progress on the warnings stuff for JUnit rule and the listener - will update the PR very soon.

@TimvdLippe TimvdLippe closed this in #483 Aug 23, 2016
@TimvdLippe TimvdLippe removed the in progress label Aug 23, 2016
@szczepiq
Member

I'm confused why this ticket is closed. I don't see 2.0 in maven central :)

@TimvdLippe
Contributor

@szczepiq because this issue was referenced in #483 which I just merged

@szczepiq
Member

ah, GH smartness :)

@szczepiq szczepiq reopened this Aug 23, 2016
@szczepiq
Member

As promised here’s suggested plan to get 2.0 out. Please give feedback, sing up for tasks and commit to ETA so that we get 2.0 out :)

Step 1:

  • prepare RC release notes + announcement (highlights, motivation, request for feedback) - #582
  • review and update documentation for 2.0.0 - #596
  • ensure & test manual Mockito releases - #586
  • update CI / build scripts (releasing betas from branch, etc) - #594

Step 2:

  • branch out / fixes to release / Travis - #594

Step 3:

  • pull the trigger for RC!!!!!, close darn #123 !!!!!!
@TimvdLippe
Contributor

image

@TimvdLippe
Contributor

I think we have updated all relevant documentation. @bric3 once you branch out to release/2.x we can publish the release candidate 🎉

@TimvdLippe
Contributor

I went ahead and published the release candidate. You can download 2.1.0-RC.1 at https://bintray.com/szczepiq/maven/mockito/2.1.0-RC.1#

@bric3
Contributor
bric3 commented Sep 10, 2016

By the way I would prefer to have mockito account on bintray

@TimvdLippe
Contributor

Yes agreed. Let's extract a separate issue for that.

@bric3 bric3 referenced this issue Sep 28, 2016
Closed

Release 2.1.0 final #642

8 of 8 tasks complete
@TimvdLippe
Contributor

Mockito 2.1.0 has been released, upgrade today 🎉

@TimvdLippe TimvdLippe closed this Oct 3, 2016
@TimvdLippe TimvdLippe removed the in progress label Oct 3, 2016
@TWiStErRob TWiStErRob referenced this issue in powermock/powermock Oct 3, 2016
Closed

Crash with latest mockito2 #686

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