question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Implement minimal build system

See original GitHub issue

Currently, most Cython users have to implement code in their setup.py files to decide whether to recompile the .pyx sources with Cython or not, and what to do if Cython is not installed. Essentially this dance:

http://docs.cython.org/en/latest/src/reference/compilation.html#distributing-cython-modules

PEP 517 and PEP 518 provide ways to configure certain build system tools for a given project. This can be used to provide a simple Cython build package that does this once and for all, is distributed separately via PyPI, and internally calls Cython when necessary and requested, but otherwise just replaces the .pyx files by pre-generated .c files that come with the source distribution.

It would become a dependency of Cython itself and some parts of the cythonize() implementation would be moved into the new build package. Meaning, most of the code is already there in one way or another, just needs to be extracted and cleanly put into an external package.

Also see #1981, which could be solved at the same time (in a single package).

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:10
  • Comments:30 (28 by maintainers)

github_iconTop GitHub Comments

4reactions
jdemeyercommented, Aug 21, 2018

I still don’t understand why everybody wants to NOT depend on Cython at build-time. First of all, what’s wrong with Cython as dependency? Second, if you’re going to add a minimal build system as new package, then you’ll need a dependency anyway.

1reaction
robertwbcommented, Aug 15, 2018

I would like to see this logic pushed up to setuptools (by default at least). We had some discussions about this at the workshop in Cernay, but I can’t seem to find a pointer to the notes. @embray did you have those handy?

Read more comments on GitHub >

github_iconTop Results From Across the Web

An overview of build systems (mostly for C++ projects)
Generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more across Windows, Mac OS X, and Linux. Use the full featured...
Read more >
Show HN: Minimal build system using just /bin/sh - Hacker News
This repo illustrates a way to manage a project using just plain Bourne sh, available on all Unix systems since 1977.
Read more >
Ninja, a small build system with a focus on speed
Ninja is a small build system with a focus on speed. It differs from other build systems in two major respects: it is...
Read more >
PEP 518 – Specifying Minimum Build System Requirements ...
As part of this specification, a new configuration file is introduced for software packages to use to specify their build dependencies (with the...
Read more >
Understanding C/C++ Build system by building a simple project
In this post we will only build a standalone executable which is the most easiest way of building a C project. We make...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found