150 Commits

Author SHA1 Message Date
Kay Hayen b9d4bbd8f1 macOS: Added option to set the app category for app store 2026-05-26 13:30:45 +02:00
Kay Hayen 5695c4ca78 macOS: Added option for the minimum app version, --macos-app-macos-min-version
* The default comes from the used Python
2026-05-26 13:30:45 +02:00
Kay Hayen 47a1472e58 UI: Added option to check if Nuitka has an update available 2026-05-26 13:30:44 +02:00
Kay Hayen 7bcd580a6d Project: Correct a few mistakes done when changing the license
* Reference the runtime exception everywhere as that is expected
  to be done, not just generally.

* Proper link to the correct version of the license file on the
  web.
2026-05-15 13:27:38 +02:00
Kay Hayen e531577ee2 fixup! New release cycle 2026-05-15 13:22:26 +02:00
Kay Hayen d0df7178e4 macOS: Drop the "universal" target arch
* Not going to happen and this just pollutes the user interface
2026-05-05 09:55:50 +02:00
Kay Hayen 70275e7132 Standalone: Add support for "tyro" package
* The tyro.cli help can be supported through a new plugin that captures source reads it does and provides them at runtime.
2026-05-02 21:18:47 +02:00
Kay Hayen c4a91b1813 Plugins: Add torch-hub plugin
* This can resolve dependencies for torch hub downloads at compile time
2026-04-30 19:29:07 +02:00
Kay Hayen 622c40d420 Windows: Make sure we never produce unexpected pdb files
* We have had cases where this happened for one reason or the
  other unnoticed, make sure we will notice.

* Also removing the pdb file if it is not related is always a
  good idea, as it will be mismatching.
2026-04-26 06:52:05 +02:00
Kay Hayen cdfd7aaaec Plugins: Performance enhancements
* Added option to show how much time plugin hooks consume and
  how often they get called, such that we can identify bottlenecks
  in plugins.

* The anti-bloat "decideAssertions" overload was misnamed, but we
  don't use it yet anyway.

* For some frequently used plugin hooks, track which ones overload
  the method in question and only iterate over those, instead of
  all active plugins.

* Allow registering what implicit imports a plugin has to make, so
  it doesn't have to be called all the time.
2026-04-26 06:52:04 +02:00
Kay Hayen 5015acb9c9 Debugging: Added option to enforce performance counters
* This catches if the Linux used doesn't have them available and informs the user what to do.
2026-03-25 10:44:11 +01:00
Kay Hayen 854bad797f UI: Added support for {FILE_VERSION} and {PRODUCT_VERSION}
* These were lacking and make sense for some features.
2026-03-25 10:44:11 +01:00
Kay Hayen 7aae043783 Onefile: Default to random onefile temp dirs
* Otherwise symlink attacks will be possible, and we can avoid them easily.
2026-03-25 10:44:11 +01:00
Kay Hayen 3bc6d24068 Bump copyright year. 2026-03-18 17:28:58 +01:00
Kay Hayen 13620e9dfa Merge tag '4.0.6' into develop 2026-03-18 15:08:16 +01:00
Kay Hayen 4b9bb87c29 Scons: Added option to select reproducible builds or not
* These can cause issues with AV on Windows due to using old build dates
2026-03-18 12:07:45 +01:00
Kay Hayen b7b5b48e9f UI: When --onefile-cached-mode=cached is given, change the default to recommended value
* That avoids the need to specify this standard spec on your own.

* Also avoids the error that will be given if a non-dynamic spec is given.

* When you specify your own spec, then it's now checked if it's not dynamic
2026-03-03 14:13:35 +01:00
Kay Hayen 1e8859585b Updated manpages for Nuitka 4.1 release cycle. 2026-02-14 20:57:49 +01:00
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