132 Commits

Author SHA1 Message Date
Kay Hayen
73ee5c9806 Cleanups
* Remove dead code

* Added support for DLL tags just like we have with data files already.

* Static source files are now provided by Nuitka and not during scons runtime anymore.
2026-01-31 11:30:11 +01:00
Kay Hayen
8d6771621b Plugins: Add option for debugging qt plugin loading 2026-01-28 13:47:30 +01:00
Kay Hayen
2607ba99ea macOS: Added console mode for macOS apps too
* With this, now terminal apps relaunch inside of "Terminal"
  when using that.
2026-01-28 13:47:30 +01:00
Kay Hayen
bdd603d8d3 Windows: Add option to control inclusion of runtime DLLs
* Also make onefile binary work on systems with no runtime, previously only standalone actually was made to work.

* Also moved code making the MSVC redist detection in Nuitka to DllDependenciesWin32 where it makes more sense.

* Now "auto" is something you can change and get informed about the consequences.
2026-01-28 13:47:29 +01:00
Kay Hayen
f2fe2180f8 Debugging: Added a developer option for verbose data composer output
* Don't have this as a hard to discover experimental option.
2026-01-28 13:46:27 +01:00
Kay Hayen
230d8c142c Debugging: Rather than manual indentation enable format with clang-format for C code optionally
* That also makes the main code path slightly faster.
2026-01-28 13:46:27 +01:00
Kay Hayen
fd2fe321e6 Debugging: Added new option "--debug-self-forking"
* Also moved command line options helper module to new "nuitka.options" package.
2026-01-28 13:45:19 +01:00
Kay Hayen
ba252b91dc Plugins: Enhanced output of --plugin-list
* Now ordered just like --help-plugin output is based on categries.

* Include annotations for plugins that are always enabled and such
  that have a detector to tell the user when they should enable
  them.

* Added more tags to the existing plugins and cleanup of their
  descriptions for consistency.
2026-01-28 13:45:19 +01:00
Kay Hayen
4110f29e0f UI: Added support for "poetry" for "--project" option
* We don't need it to have an argument, can just detect used build system.

* We now check if setuptools is actually used.

* Move the handling of the project tool to dedicated modules in a
  new package "nuitka.options" where long term option parsing will
  go as well.

* We also prepared passing the requirements to install via command
  line options, but that's not usable yet.
2026-01-28 13:45:19 +01:00
Kay Hayen
89c8829c42 UI: Added method for compiling like "-m build" would.
* The "--project" option is intended to grow and later support poetry as well.

* Added test coverage to compile all distutils cases that work with "-m build" as standalone applications as well.

* Enhanced trace output for the distutils cases somewhat.

* Doesn't create create a virtualenv with the requirements but compiles inside the current environment.
2026-01-28 13:44:29 +01:00
Kay Hayen
e778bdb0a5 Plugins: Follow changes in the commercial plugins 2026-01-28 13:44:29 +01:00
Kay Hayen
8c8300715a UI: Added support for zig as a C compiler
* Downloads zig if necessary via pip for use and sets up the
  environment explicitely.

* Made the user query for download re-usable for private pip
  space as well.

* With 3.13+ this is now downloaded in scons on Windows
  because MinGW64 is not currently working on those Python
  versions and may not for a while. This will improve the
  out of the box experience for non-MSVC users and those
  lacking the skill to install it dramatically.
2026-01-28 13:37:48 +01:00
Kay Hayen
e957992517 macOS: Added option to create DMG files 2026-01-28 13:37:26 +01:00
Kay Hayen
bebdca26ac Optimization: Faster code generation
* This doesn't do indentation anymore unless asked by
  new option or in debug mode, saving 10% of the time
  use for generation of code in a larger module.
2026-01-28 13:36:41 +01:00
Kay Hayen
5404f865a1 UI: Added options for compile time profiling
* Also renamed old runtime profiling option, that is however still broken.
2026-01-28 13:36:41 +01:00
Kay Hayen
af7dc79e91 Next release will be 4.0, bumping version accordingly.
* We skip the Python3 number space in order to avoid confusion
  between them. Already Nuitka 2.7 could be confused with Python
  2.7 without proper context.
2026-01-28 13:36:41 +01:00
Kay Hayen
2d9f8e373b Merge tag '2.8.5' into develop 2026-01-28 13:35:02 +01:00
Kay Hayen
0c5f18cce6 Merge tag '2.8.2' into develop 2026-01-28 13:33:21 +01:00
Kay Hayen
e447a7dadf Onefile: Allow to disable onefile timeout and hard killing on CTRL-C entirely 2026-01-28 13:32:53 +01:00
Kay Hayen
de5c03cefc New release cycle. 2026-01-28 13:31:52 +01:00
Kay Hayen
0d74840cda UI: Actually --output-filename works fine for standalone mode too 2026-01-28 13:31:51 +01:00
Kay Hayen
f29129cb0c UI: Don't say "--include-data-files-external" doesn't work in standalone mode
* It does for a while, but the help still said it wouldn't.
2026-01-28 13:31:51 +01:00
Kay Hayen
25d9589c92 Project: Changed license to AGPLv3
* This is with an exception for the runtime library parts
  to allow proprietary compiled code to link against it.

* But it makes creating competitors to Nuitka commercial
  impossible, as they would need to open source their code.
2026-01-28 13:27:34 +01:00
Kay Hayen
642fcec025 Plugins: Added support for configuring recompilation of extension modules
* When we have both Python code and an extension module, we only had a global option available.

* This adds --recompile-extension-modules for more fine grained choices.

* Existing unworthy namespaces were migrated to not do it by default.

* For "zmq" we need to enforce it to never be compiled, as it checks if it is compiled with Cython at runtime.
2025-10-10 17:05:56 +02:00
Kay Hayen
2888795573 Minor spelling cleanup 2025-10-10 17:05:56 +02:00
Peter Bierma
27cc5f6e4c UI: Support arbitrary debuggers through --debugger
* Support arbitrary debuggers in the --debugger flag, if you specify all of their command line.

* Remove implicit defaults for debugger name, make calls externally from test framework with
  the variable resolved from there.

* Add support for valgrind-memcheck debugger option.

---------

Co-authored-by: Kay Hayen <kay.hayen@gmail.com>
2025-10-10 17:05:49 +02:00
Kay Hayen
5ac6f63994 UI: Minor wording improvements 2025-10-10 17:05:45 +02:00
Kay Hayen
676cdb67cc UI: Enhanced description of "--show-source-changes"
* Specifying packages includes their children already, so don't use ".*" anymore
2025-10-10 17:05:45 +02:00
Kay Hayen
dd81a57d1a UI: Make "--include-data-files-external" the main option name for put data files alongside.
* This now works with standalone too, and is no
  longer onefile specific, the name should reflect that.
2025-10-10 17:05:40 +02:00
Kay Hayen
3324a3b1b5 Doc: Fix, man pages had corrupted option names.
* Some options got broken up at hyphens which then
  didn't make it into the manpage.

* This now just avoids line breaks in help texts
  and lets "man" handle the rendering into lines.

* Also spelling cleanups, now that man pages are
  mostly well readable for cspell.
2025-10-10 17:05:21 +02:00
Kay Hayen
2ad979ebdc UI: Use "rich" for standard progress bars as well
* It is the default if available and tqdm is only
  used if it's not available.

* Also added option to select it that replaces the
  old disabling option with value "none".
2025-10-10 17:05:21 +02:00
Kay Hayen
ea4d5cfb31 UI: Added mode "app-dist" for standalone everywhere except "app" on macOS 2025-10-10 17:05:16 +02:00
Kay Hayen
94a7a4915d macOS: Added new option to manpage 2025-10-10 17:04:14 +02:00
Kay Hayen
5509f1d082 Doc: Fix, man pages were not rendered correctly
* There is an issue with calling "--version --help" where the later
  takes precedence, avoid that by knowing the context we run in, as
  otherwise we had options duplicated.

* We also created the wrong kind of command line to ask for help, which
  no longer outputs full help for a while, so "nuitka-run" was almost
  empty.
2025-10-10 17:04:14 +02:00
Kay Hayen
288ee7d70f Doc: Man page examples didn't do standalone and onefile
* Also use new style options
2025-10-10 17:04:14 +02:00
Kay Hayen
27da264aca macOS: Add ability to unlock keyring files with password
* This makes code signing directly possible.
2025-10-10 16:56:32 +02:00
Kay Hayen
8bdb20c5a3 UI: Remove obsolete mode value options
* These are only kept for compatibility
2025-10-10 16:56:06 +02:00
Kay Hayen
741b752d6f UI: Added new scanning tool for distribution metadata
* This gives Nuitka's view on installed packages must like "pip list -v" but based on its own scan.
2025-10-10 16:54:42 +02:00
Kay Hayen
34ebeb48c5 Plugins: Add support for "cloudpickle"
* The dill-compat plugin now handles both pickle
  "dill-compat" and "cloudpickle" support modules
  to also pickle compiled functions.

* For module mode, it would like a hint to know
  which ones to handle, by default it tries both,
  but that might be wasteful at runtime so you can
  choose "dill" and/or "cloudpickle", by specifying
  them.

* The default is "all", and we might add more pickle
  related packages in the future, and we will also
  aim at making this plugin enabled by default.

* Also major cleanup of the C code and existing
  dill-compat code to move handling of all things
  into C side code, but argument parsing.
2025-10-10 16:54:42 +02:00
Kay Hayen
0bdd104baf UI: Added support for "safe path", "-P" ignoring current directory for package scans 2025-10-10 16:54:42 +02:00
Kay Hayen
a38614208b UI: Allow to disable DLL for onefile mode with new option 2025-10-10 16:54:42 +02:00
Kay Hayen
379a3d9e68 UI: Minor option cleanups
* Found as necessary to generate options for Nuitka-Action
  and our plugins automatically.
2025-10-10 16:54:42 +02:00
Kay Hayen
9cdab9712c Onefile: Add "{PROGRAM_DIR}" in spec variable and allow users cached mode decision
* The new variable expands to the directory of the
  onefile binary and can be useful for forced output
  specs as well as for some onefile setups where you
  know the user environment very well.

* Allowing the user to control the removal or not of
  the temporary files. They may want to remove even
  from what would be static paths, and they might
  want to remove for what appears to be dynamic, but
  they know it's not used like that.

* Also add new onefile section to reports.
2025-10-10 16:48:53 +02:00
Kay Hayen
f8e1bebf24 Debugging: Added option "--no-debug-c-warnings"
* This replaces the former experimental flag "allow-c-warnings" which got removed.
2025-10-10 15:07:36 +02:00
Kay Hayen
7526f88d26 UI: Minor typo in help output 2025-10-10 15:06:56 +02:00
Kay Hayen
8e4b907b5b DLL: Added new mode to produce standalone DLL distributions
* This is experimental at this time, but appears to work for many things.

* Multiprocessing will need help from launched binary, to provide fork ability, but current args are not passed.

* Intended for improvement of Windows GUI compatibility with tray icons and notifications in onefile mode, which will use this internally
2025-10-10 15:06:56 +02:00
Kay Hayen
92e5778d72 UI: Added option to list EXE files in package
* This can be useful when attempting to find out
  what to put into Yaml code.
2025-04-28 11:04:36 +02:00
Kay Hayen
718ab60539 Bump copyright year 2025-04-28 11:04:36 +02:00
Kay Hayen
5e3c5a4a0d UI: Replace uses of "--module" with "--mode=module"
* Also the new "--mode=package" wasn't considered in
  a few places in our testing framework.
2025-04-28 11:04:38 +02:00
Kay Hayen
6b9c1e1bbf UI: Add compilation mode "package" that auto-includes package over "module" mode
* Also cleaned naming of recursing functions and
  import usages of main control there.
2025-04-28 11:04:38 +02:00