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

Road to 8.0. #11816

Open
Carreau opened this issue Jul 7, 2019 · 10 comments
Open

Road to 8.0. #11816

Carreau opened this issue Jul 7, 2019 · 10 comments
Milestone

Comments

@Carreau
Copy link
Member

@Carreau Carreau commented Jul 7, 2019

This is a meta issue to track the road to IPython 8.0
It is there to track the potential large changes and discuss them.

I'll try to keep this top comment edited to reflect the status of the thread.

@Carreau
Copy link
Member Author

@Carreau Carreau commented Jul 7, 2019

Suggestions

  1. use black on all the things and have a bot/ci that autoformat pull-requests. IE not fail on improperly formatted code to not annoy user. The main question is: do we run black at once on the full codebase ?

  2. Drop Nose, test using Pytest. It's still a bit annoying as we are so far stuck on pytest 3, and moving to pytest 4 or 5 will be a significant effort. Some test still only run w/ nose (doctests) and need to be migrated.

  3. Completer refactor... this can be a lot of work and is a change of API.

@Carreau Carreau pinned this issue Jul 7, 2019
@gpotter2
Copy link
Contributor

@gpotter2 gpotter2 commented Jul 14, 2019

Suggestions:

  • Resolve the issues with the completer (see #11804)

(please help me out with that by the way. I'm having trouble keeping it to work with external frontends)

@Carreau
Copy link
Member Author

@Carreau Carreau commented Jul 18, 2019

Yes, that would be a good idea as well.

@terrdavis
Copy link
Contributor

@terrdavis terrdavis commented Aug 20, 2019

Suggestions:

  • Remove deprecated color_scheme argument in core.debugger.
  • Remove other deprecated items (esp. those deprecated before ipython5).
  • Remove python 2 specific imports. I found reprlib, winreg, and tkinter with a search for py 2.
@terrdavis
Copy link
Contributor

@terrdavis terrdavis commented Aug 20, 2019

Suggestions

  1. use black on all the things and have a bot/ci that autoformat pull-requests. IE not fail on improperly formatted code to not annoy user. The main question is: do we run black at once on the full codebase ?
    ...

Yes
It appears that it's possible to specify commits to be ignored by git blame by pointing blame.ignoreRevsFile to a file with the commit hashes corresponding to formatting commits.

@Carreau
Copy link
Member Author

@Carreau Carreau commented Aug 21, 2019

  • Remove python 2 specific imports.

That does not need to wait for 8.0 if they are 2.x only.

It appears that it's possible to specify commits to be ignored by git blame by pointing blame.ignoreRevsFile to a file with the commit hashes corresponding to formatting commits.

I saw that it's new in git 2.23; I haven't found the default name for this ignore file; it would be nice for users to not have to explicitly configure git; so if you find how to do that; it would be nice.

@terrdavis
Copy link
Contributor

@terrdavis terrdavis commented Aug 27, 2019

... it would be nice for users to not have to explicitly configure git; so if you find how to do that; it would be nice.

What about a repo-specific .gitconfig that includes this file name, and a one-time setup script that runs git config --local include.path ../.gitconfig?
The only other option is to change git so there is a default file.

@terrdavis
Copy link
Contributor

@terrdavis terrdavis commented Nov 7, 2019

I recently implemented a variant of the idea in my previous post:

  • Put the revs to ignore in .git-blame-ignore-revs (see this post for rationale on the name, and confirmation that there's no default file name).
# When making commits that are strictly formatting/style changes, add the
# commit hash here, so git blame can ignore the change.
# see docs for more details:
# https://git-scm.com/docs/git-config#Documentation/git-config.txt-blameignoreRevsFile

<full commit hash>  # initial black-format
<full commit hash>  # rename something internal
  • Create a batch script (and corresponding shell script) configure-git-blame-ignore-revs.bat containing:
rem other config options for blame are markUnblamables and markIgnoredLines.
rem see docs for more details:
rem https://git-scm.com/docs/git-config#Documentation/git-config.txt-blameignoreRevsFile

git config blame.ignoreRevsFile .git-blame-ignore-revs
git config --get blame.ignoreRevsFile
  • Explain in developer docs.
@Carreau
Copy link
Member Author

@Carreau Carreau commented Nov 16, 2019

I'm more and more convinced that this would be helpful.
If you want to send a pull-request that add these scripts in tools and update the readme that would be nice. At least we can focus the discussion in there; and once we run black on something we can decide to update this file. I'm guessing we can also likely look at the version of IPython; and if its .dev; ask user to run specific commands.

@Carreau Carreau added this to the 8.0 milestone Feb 1, 2020
@Carreau
Copy link
Member Author

@Carreau Carreau commented Feb 12, 2020

Master is now going to be IPython 8.0. no target date yet, but API changes are now game.

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

Successfully merging a pull request may close this issue.

None yet
3 participants