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

Implement PEP 517, store data in pyproject.toml #77

Closed
wants to merge 1 commit into
base: master
from

Conversation

Projects
None yet
3 participants
@takluyver
Copy link
Owner

takluyver commented Mar 27, 2016

I'm still not sure about this, but this is roughly what it takes to add TOML support for config.

  • TOML is more verbose than INI, but better specified and more flexible. Explicit lists are nicer than multi-line strings (IMO), and it makes it easier to have entrypoints defined in the main config file rather than in a separate file (though we could do that in ini too).
  • TOML is younger, so there's less editor support - PyCharm doesn't have syntax highlighting for TOML, while it does for ini.
  • There's some extra complexity to support two different config formats. This can't go away any time soon, because dropping ini support would break existing projects using flit.
  • It adds a dependency by someone I don't know (uiri's toml package). Recent events in the JS ecosystem have highlighted the risks of adding lots of external dependencies (is-positive-int was a remarkable example).

I think I'm currently leaning towards being conservative and sticking with ini for now. I like toml, but it's not clear that switching is a net benefit for this use case.

@Carreau

This comment has been minimized.

Copy link
Collaborator

Carreau commented Jun 6, 2016

do you want to update that to use pyproject.toml ?

@takluyver

This comment has been minimized.

Copy link
Owner

takluyver commented Jun 6, 2016

I'm waiting for the other part of the build system abstraction stuff, that tells tools how to run the build system. Once that's done, I'll look at using pypackage.toml.

@dholth

This comment has been minimized.

Copy link

dholth commented Jun 30, 2016

I currently prefer pytoml, it seems to be well tested. toml has some bugs: toml.loads(toml.dumps({'foo=bar': ['sdl2_lib']}))

@takluyver

This comment has been minimized.

Copy link
Owner

takluyver commented Jun 30, 2016

Thanks for the info. It looks like pytoml is also more actively maintained. I'll probably switch when I come back to this.

Do you know if there's any movement on PEP 516/517 to follow on from PEP 518?

@dholth

This comment has been minimized.

Copy link

dholth commented Jun 30, 2016

Haven't heard anything.

@takluyver

This comment has been minimized.

Copy link
Owner

takluyver commented Aug 12, 2016

I've started updating this to PEP 518's pyproject.toml. I'm still trying to push the other relevant PEPs forwards.

There's not now a clear difference in maintenance between toml and pytoml, and the bug @dholth mentioned in toml seems to be fixed. So I'm sticking with toml for the time being, but I'm open to reviewing that if one looks better than the other.

@dholth

This comment has been minimized.

Copy link

dholth commented Aug 12, 2016

toml is nice because it is just one file. glad to hear they fixed the bug.

@takluyver takluyver changed the title Toml config Implement PEP 517, store data in pyproject.toml Nov 23, 2016

@takluyver

This comment has been minimized.

Copy link
Owner

takluyver commented Nov 23, 2016

This now provides an implementation of the buildsystem API provisionally specified by PEP 517.

I'm still thinking about the best way to specify dependencies in the TOML config.

@takluyver takluyver referenced this pull request May 11, 2017

Merged

Make sdist #106

@takluyver takluyver force-pushed the toml-config branch from a893b47 to e9e9d30 May 13, 2017

-

@takluyver takluyver force-pushed the toml-config branch from 367680b to c0fcb73 Jul 6, 2017

@takluyver takluyver closed this Jul 6, 2017

@takluyver takluyver deleted the toml-config branch Jul 6, 2017

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