UNPKG

@lypt1x/neu

Version:
272 lines (184 loc) 10.9 kB
# Changelog Add all code changes (features, deprecations, and enhancements) under the `Unreleased` topic to track changes for the next release. Once the changes are released, rename `Unreleased` topic with the new version tag. Finally, create a new `Unreleased` topic for future changes. ## Unreleased ## v11.5.0 ### Core: Creator - Support using a specific directory with the `neu create` command, e.g., `neu create .`, `neu create myapps/myapp`, `neu create ../myapp`, etc. ## v11.4.0 ### Core: Bundler - Let developers copy additional non-resource files like configuration files to the final app bundle using `cli.copyItems` array. - Add the `--macos-bundle` flag to the `build` command to rename MacOS binary to a `*.app` file. - Add the `--config-file <path>` to use a custom Neutralinojs config file for creating the bundle. i.e., `neu build --config-file prod.config.json` ### Bugfixes/improvements - Support spaces in internal CLI arguments, i.e., `neu run -- --window-title="Window title"` ### Dependencies - Update several dependency packages ## v11.3.1 ### Bugfixes/improvements - Add execution permissions for binaries after downloading them in Unix-based and Unix-like platforms. ## v11.3.0 ### Host projects support Developers can launch Neutralinojs from any programming language using child process APIs (i.e., `subprocess` in Python) and communicate with the framework process using the extension API. The new `hostProject` configuration object extends the official CLI to help developers easily create, run, and build these host projects. For example, the following host project configuration instructs the CLI to run a Node.js host project: ```json "hostProject": { "projectPath": "/node-src", "buildPath": "/node-src/dist/", "initCommand": "npm install", "devCommand": "npm start", "buildCommand": "npm run build" } ``` Community projects implement bindings and templates to create host projects using Node.js, Python, Go, etc. For example, the [`node-neutralino`](https://www.npmjs.com/package/node-neutralino) NPM package lets you launch Neutralinojs via Node.js environments and execute native APIs via the `NeutralinoApp` class: ```js import NeutralinoApp from 'node-neutralino'; const app = new NeutralinoApp({ url: '/', windowOptions: { enableInspector: false, } }); app.init(); app.window.setTitle('Node.js'); ``` ### Executable icon and metadata on Windows Now, the `neu build` command automatically updates the executable file icon and metadata based on the following configuration options: - `author`: gets written into executable's metadata. - `description`: gets written into executable's metadata. - `copyright`: gets written into executable's metadata. Defaults to current date + generic "all rights reserved". - `applicationName`: gets written into executable's metadata. Defaults to `cli.binaryName`. - `applicationIcon`: a relative path to an icon in `.png` format. Defaults to `modes.window.icon`. If it is not set, uses Neutralinojs logo. ### Bugfixes/improvements Use the `zip-lib` package to handle ZIP files for better performance and simplicity in the source code. ## v11.2.2 ### Bugfixes/improvements - Fix initial loading issues with frontend library development file patching. ## v11.2.0 ## Core: Bundler - Introduce the `--clean` flag to the `neu build` command to clean previous build files. - Add file excluding feature for the app bundle and extensions directory via `cli.resourcesExclude` and `cli.extensionsExclude` configuration properties. For example, now developers can use the `"resourcesExclude": ".*\\.scss$|.*\\.d.ts$"` configuration to exclude `*.scss` and `*.d.ts` files from the final app bundle. - Let app developers customize the frontend library development server wait time using the `cli.frontendLibrary.waitTimeout` configuration property. ## Core: Version - The `neu version` command now compares the installed CLI version and the framework version with the latest released versions and displays a warning messages if the users use an older versions. - The `neu version` command now displays the `(latest)` tag with CLI, binary, client library version details. ### Bugfixes/improvements - Check and validate `neutralino.config.json` file before executing app-specific commands. - Check app template validity before downloading content from a specific GitHub repository using the official GitHub API. - Add the app icon to the final app bundle only the specific project uses an app icon. - Fix the port waiting timeout issue with frontend library-based development workflow. ## v11.1.0 ### Core: Bundler - Add `cli.distributionPath` into the `neutralino.config.json` file to customize the default `dist` distribution directory. ## v11.0.1 ### Bugfixes/improvements - Clean existing app build files before creating another build using the `neu build` command. - Support older Node versions by removing the optional chaining feature usage. - Fix the endless port waiting issue with the `--frontend-lib-dev` option. ## v11.0.0 ### Core: Runner - Change the WebSocket connection based on the v5 framework APIs. ### Bugfixes/improvements - Fixed issues with the frontend library command execution. ## v10.1.1 ### Bugfixes/improvements - Fixed app development issues with the Vite server. ## v10.1.0 ### Bugfixes/improvements - Fixed several issues in the frontend-library-based development flow (i.e., removed the hardcoded port number, fixed double `devCommand` execution, etc.,). ## v10.0.0 ### Core: frontend-library-based development Added new configuration options to the `cli.frontendLibrary` key of the `neutralino.config.json`: - `projectPath`: Sets the project path of the frontend-library project. This path will be used as the current directory while executing the frontend-app-related commands. - `initCommand`: A command that gets executed after downloading an app template with the `neu create` command. - `devCommand`: This command will run with the `neu run` command to start the frontend development server. The CLI doesn't wait for `devCommand` completion, instead, it will wait for the frontend development server via the [`tcp-port-used`](https://www.npmjs.com/package/tcp-port-used) package. - `buildCommand`: The `neu build` command will execute this command before generating the app bundle, so you can generate static resources of your frontend app using this command. ## v9.8.0 ### Core: Downloader - Download the latest Neutralinojs framework resources with the `--latest` option in the `neu update` command. - If framework versions are not present in the app/template configuration, download the latest framework resources automatically. The CLI will download nightly releases if it can't fetch the latest release tag because of an GitHub API-related issue (i.e., Exceeded rate limits). ## v9.7.0 ### Core: Downloader/bundler - Download the TypeScript definition file for standalone client library mode. This won't include the TypeScript definition file to the final application bundle. ## v9.6.1 ### Bugfixes/Improvements - Fix the hot-reloading issue that occurs with newer Node runtime versions. ## v9.6.0 ### Core: Bundler - Avoid copying the `WebView2Loader.dll` file to the final app package since it was removed from the Neutralinojs framework. ## v9.5.1 ### Bugfixes/Improvements - Use the `decompress` library instead of `unzipper` to fix issues with latest Node.js runtime versions. - Generate the Mac universal binary with the `neu build` command. ## v9.5.0 ### DevOps - Implement a way to test plugins locally. ## v9.4.0 ### DevOps: new test suite - Initiate a new Node.js-based test suite. ### Bugfixes/Improvements - Clean project files if the `neu create` command wan't successful. - Display an error message if the `neu build --copy-storage` fails due to missing `.storage` directory. - Support Darwin `arm64` binaries natively without binary translation (`x64` -> `arm64`). - Make the client library downloading process optional and support importing the client library via `@neutralinojs/lib`. - Download the module version of the client library based on the app configuration. ## v9.3.1 ### Core: Plugins - Automatically re-install plugins when the neu CLI version is upgraded/downgraded via package managers. ### Core: downloader/builder - Support ARM (armhf/arm64) binaries. ## v9.3.0 ### General - Add short descriptions for each command. - Support to download nightly build versions. ### Bugfixes/improvements - Fix plugin listing issue. ### DevOps - Add a simple test-suite for testing CLI commands with a Bash script. ## v9.2.0 ### General - Improve log messages and styles ### Core: Runner - Display Neutralinojs process's STDIN and STDERR streams directly on the console. - Remove `--verbose` option from the `run` command. ## v9.1.2 ### Core: Runner - Fix client library path issue with hot-reload workaround on Windows. ## v9.1.1 ### Bugfixes - Fix browser mode exit issue with `neu run`. ## v9.1.0 ### Core: Runner - Add a workaround to use hot module reloading from the app developer's existing frontend library/framework. ## v9.0.0 ### Core: Creator - Allow downloading any community template via `neu create myapp --template <template>`. `<template>` accepts valid GitHub repo identifiers. The default value is `neutralinojs/neutralinojs-minimal`. ### Core: Runner - Add `--verbose` option to identify framework initialization crashes. It will show STDERR and STDOUT of the framework once the process was terminated. - Support sending any internal CLI argument to the Neutralinojs process via `neu run -- <additional_args>`. - Remove `--mode=<mode>` option from `run` since the same work can be done with `neu run -- --mode=<mode>`. ### Bugfixes and improvements - Fix the infinite retry issue with the `neu run` command. - Show an error message for download failures. ## v8.1.0 ### Core: File watcher - Exclude auto-reload files via `cli.autoReloadExclude`. - Watch only the `cli.resourcesDir` to avoid many unwanted reloads. ### Core: Bundler - Add new `--copy-storage` flag to automatically copy storage data to the app bundle. ## v8.0.1 ### Core: Bundler - Make `cli.extensionsDir` optional for bundling process. ### Bugfixes - Fix an issue in websocket error log. ## v8.0.0 ### Core: Bundler - Copy extensions to the app bundle. - Rename `res.neu` to `resources.neu`. ### Core: Runner - Use websocket connection to auto reload app. ## v7.1.0 ### Core: Downloader - Use server/client versions from config ### `neu version` - Removed global Neutralino version details