Skip to content

MAINT: add ability to specify recursionlimit #7843

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

Merged
merged 1 commit into from
Jan 25, 2017

Conversation

matthew-brett
Copy link
Contributor

We're getting a test failure on OSX and Python 3.6 where parsing reaches the
recursion limit: #7799

Upping the recursionlimit resolves the error.

Add command line argument to tests to up the recursion limit for the
test run.

We're getting a test failure on OSX and Python 3.6 where parsing reaches the
recursion limit: matplotlib#7799

Upping the recursionlimit resolves the error.

Add command line argument to tests to up the recursion limit for the
test run.
@efiring
Copy link
Member

efiring commented Jan 16, 2017

How high do you have to raise the limit? And why would the problem be specific to python 3.6? Does it have a lower default limit? On 3.5, OS X, Anaconda, it is 1000. Would it make sense to increase the default in tests.py in addition to, or instead of, adding the option?

@matthew-brett
Copy link
Contributor Author

I think it's always 1000, by default. Maybe it would be good to raise the default limit, I was worried that we might be concealing other problems by doing that. I have no idea why Python 3.6 generates this error, maybe it is because of different dict ordering on Python 3.6?

@tacaswell tacaswell added this to the 2.1 (next point release) milestone Jan 17, 2017
@NelleV
Copy link
Member

NelleV commented Jan 19, 2017

Am I understanding properly that this has been merged to v2.x?
Should we thus close this PR?

@phobson
Copy link
Member

phobson commented Jan 19, 2017

@NelleV I'm confused about what to do as well.

#7849 went into v2.x, but not master.

@matthew-brett
Copy link
Contributor Author

This is the equivalent fix to the one that has been merged for v2.x - but the code being modified has changed so much that the v2.x fix won't apply, and this one needs to be merged for master.

@NelleV
Copy link
Member

NelleV commented Jan 20, 2017

I am slightly worried that this is going to conflict with the merging v2 into master strategy.

@NelleV
Copy link
Member

NelleV commented Jan 20, 2017

To be more clear, merging branches into master is a practice that concerns me for many reason, this particular one included. I think the workflow should be to backport patches to v2.0, so that patches that conflicts can be dealt with by a new PR, which is the workflow you've taken.
@Carreau's backport PR tool goes into that direction as well by automating the backport with a single command line and the creation of a pull request.

I don't know how having two patches for the same bug on different branches is going to affect us. It is probably just going to be a question of fixing the conflict when merging v2.0.x into master, but the question is whether we want to merge the patch twice, or just fix the conflict when merging v2.0.x into master. A more traditional workflow would not have put us into that situation.

@Carreau
Copy link
Contributor

Carreau commented Jan 20, 2017

@Carreau's backport PR tool goes into that direction as well by automating the backport with a single command line and the creation of a pull request.

You could forward port as well, if you prefer.

The merging 2.0.x into master may conflict, then you'll have to resolve by hand and push directly. I personally don't like that. But that will only give you one conflict indeed.

Personally, I'm going to guess and not pronounce myself for the rest of the Jupyter team as we have grown a lot. Backporting is much easier for blame and bisect.

Though our N.x branches are usually short-lived, and we are pretty strict on what is "backported".

The other reason to "backport" is that users tend to issue PRs against master, so it keeps the workflow identical and surprise-less for everyone. Pr against master, and backport if deemed necessary. It also put a slightly higher threshold on the energy necessary for backporting (which has to be explicit) leading to less "accidental new features" being backported.

Anyway, If you want me the add a backport/forward port variation to my backport bot to accommodate your use case I will be happy to do so. It can likely fw/backport to many branch, and push directly instead of submitting PRs.

@NelleV
Copy link
Member

NelleV commented Jan 20, 2017

I actually think it is better to create PRs, as it allows to tests the backport. Because we are in the transition between nose and pytest for example, backporting (or forward porting) may be "clean", but still lead to failures.

@tacaswell
Copy link
Member

tacaswell commented Jan 20, 2017

@NelleV Can we move this discussion to the mailing list?

@codecov-io
Copy link

Current coverage is 62.27% (diff: 100%)

Merging #7843 into master will increase coverage by 0.17%

@@             master      #7843   diff @@
==========================================
  Files           174        174           
  Lines         56051      59294   +3243   
  Methods           0          0           
  Messages          0          0           
  Branches          0          0           
==========================================
+ Hits          34808      36927   +2119   
- Misses        21243      22367   +1124   
  Partials          0          0           

Powered by Codecov. Last update 3b9a92d...c013ed7

@tacaswell
Copy link
Member

I have done the merge up from 2.0.x so this is good to merge.

@NelleV NelleV merged commit d5132fc into matplotlib:master Jan 25, 2017
@NelleV
Copy link
Member

NelleV commented Jan 25, 2017

Thanks @matthew-brett and sorry for all the confusion.

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

Successfully merging this pull request may close these issues.

7 participants