@lypt1x/neu
Version:
neu CLI for Neutralinojs
272 lines (184 loc) • 10.9 kB
Markdown
# 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