-
Notifications
You must be signed in to change notification settings - Fork 63
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Created a CHANGELOG and added recent features to it.
Broke up 1.5.0 into several versions, (1.1 and 1.2 and 1.3)
- Loading branch information
1 parent
38cfe17
commit ae8bb3b
Showing
1 changed file
with
105 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
# Changelog | ||
All notable changes to this project will be documented in this file. | ||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
|
||
## [Unreleased] | ||
### Added | ||
### Changed | ||
### Deprecated | ||
### Removed | ||
### Fixed | ||
### Security | ||
### Known Issues | ||
|
||
|
||
## [1.3.0] - 2021-11-18 | ||
This release marks the transition to [Eric Myllyoja](https://github.com/MasterEric) as the lead maintainer for the repository. | ||
This release is backwards compatible with 1.0.0 as no breaking changes have been made. | ||
### Added | ||
- Added the `NodeFileSystem` class and `OpenFLWithNodeBackend`, for use with projects built in HTML5 for use with Electron. | ||
- Provided by [TamarCurry](https://github.com/MasterEric/polymod/pull/35). | ||
- The `@:hscript` annotation can now be defined on classes and interfaces. | ||
- Defining a `@:hscript` annotation on a class or interface will add the constants provided to them to the context of any script functions of any of that class's children. | ||
- For example, `@:hscript(Std, Math)` on a class will allow any of that class's script functions to access `Std` and `Math` from the context as though they had defined them, without having to manually define these values for each individual function. | ||
- These values are parsed recursively, so any superclass, supersuperclass, interfaces of those classes, etc. will also be added to the context. | ||
- Updated the `openfl_hscript` sample to demonstrate this new syntax. | ||
- The `@:hscript` annotation can now be defined as a parameter object. | ||
- This allows for additional types of configuration to be passed, aside from the script context. | ||
- Parameter objects can now be passed when using `@:hscript` on a class or interface. | ||
- Parameters are defined recursively, and values defined on a superclass or interface will be overridden by child classes. | ||
- The exception is the `context` parameter, which merges the provided contexts together. | ||
- If an identifier is provided in the annotation on a parent class or interface, the identifier need not necessarily be defined in the upper context. | ||
- For example, an interface can require that the variable `scriptPath` be included in the context or used as the script path name, without defining that variable itself, as long as any implementing classes that include a script function define that variable. | ||
- Updated the `openfl_hscript` sample to demonstrate this new syntax. | ||
- Added `context` as an `@:hscript` parameter. | ||
- This achieves the existing functionality of providing constants to the script context. | ||
- Example: `@:hscript({context: [Std, Math]})` | ||
- Added `cancellable` as an `@:hscript` parameter. | ||
- This allows for a script to be cancelled by the user. Defaults to `false`. | ||
- A new function `cancel()` is added to the context, which can be used to cancel the execution of the rest of the provided script body. | ||
- For example, you can add `@:hscript({cancellable: true})` to allow users to cancel an event before you perform an action. | ||
- Example: `@:hscript({context: [Std, Math], cancellable: true})` | ||
- Added `pathName` as an `@:hscript` parameter. | ||
- This allows for a script to specify the specific pathname to access. | ||
- This ignores the `POLYMOD_ROOT_PATH` and `POLYMOD_USE_NAMESPACE` settings. | ||
- The value of `POLYMOD_SCRIPT_EXT` is still appended to the final path. | ||
- Example: `@:hscript({context: [Std, Math], pathName: "assets/scripts/initBee"})` | ||
- The `pathName` parameter can now use an identifier. This allows for the pathname to be defined dynamically by the object. | ||
- If a constant is provided, the value is used as the pathname. | ||
- Example: `@:hscript({context: [Std, Math], pathName: "assets/scripts/initBee"})` | ||
- If an identifier is provided, the value of that identifier is accessed at the time the function is called. | ||
- Example: `@:hscript({context: [Std, Math], pathName: getScriptName})` | ||
- If the resulting value is a string constant, that value is used as the path. | ||
- If the resulting value is a Function, it will be called and the return value will be used as the path. | ||
- Added `runBefore` as an `@:hscript` parameter. | ||
- This allows for a script's function body to be called before the script, rather than after. Defaults to `false`. | ||
- Incompatible with the `cancellable` parameter. | ||
- Example: `@:hscript({context: [Std, Math], runBefore: true})` | ||
### Fixed | ||
- Fixed a bug where defining `@:hscript` annotations on a parent class or interface would not pass the values down to the child function. | ||
|
||
|
||
## [1.2.0] - 2021-11-04 | ||
### Added | ||
- Added several new compile defines to change the behavior of Polymod | ||
- `POLYMOD_ROOT_PATH`: Defines the base path from which scripts should be accessed. | ||
- `POLYMOD_USE_NAMESPACE`: If true, scripts are located in a folder based on the classpath. | ||
- For example, the script `com.polymod.test#init` will be located at `/data/com/polymod/test/init.txt`. | ||
- `POLYMOD_SCRIPT_EXT`: Defines the file extension used by all Polymod scripts. | ||
- This defaults to `.txt` for backwards compatibility, but should be changed to `.hscript` to improve integration with IDEs. | ||
- `POLYMOD_SCRIPT_LIBRARY`: Defines the asset library used by all Polymod scripts. | ||
- This defaults to `default`, which should be fine for Lime projects which only utilize the default asset library. | ||
- Set these values using either of the following methods: | ||
- For Haxe projects, add something like `-D POLYMOD_SCRIPT_EXT=.hscript` to your Haxe compiler arguments or `hxml`. | ||
- For Lime projects, add something like `<haxedef name="POLYMOD_SCRIPT_EXT" value=".hscript" />` to your `project.xml`. | ||
- Added the new variable `script_variables`, accessible after the execution of a scripted function. | ||
- Similar to `script_result`, which provides the return value of the script, and `script_error`, which outputs the error provided by the script, `script_variables` provides access to the named variables created by the script's local scope. | ||
- One use case for this is to allow a single script to define several named functions, which can be retrieved and stored to use later. | ||
|
||
|
||
## [1.1.0] - 2021-09-25 | ||
### Added | ||
- Added several new informational error codes to `onError`: | ||
- `MOD_LOAD_PREPARE`: Called when Polymod is about to load a given mod. | ||
- `MOD_LOAD_DONE`: Called when Polymod has successfully finished loading a given mod. Useful for logging. | ||
- `MOD_LOAD_FAIL`: Called when Polymod has failed to load a given mod. | ||
- Fully abstracted the file system and made it a parameter, similar to `IBackend`. | ||
- This allows users to implement and utilize their own custom file system class. | ||
- Example: `Polymod.init({customFileSystem: CustomFileSystem})` given a class `CustomFileSystem` which implements `IFileSystem`. | ||
- Added several video file types to the list of default file extensions. | ||
- Added `.mov`, `.mp4`, `.avi`, `.mkv`, and `.webm`. | ||
### Fixed | ||
- Performed HaxeFormatter cleanup on all source files. | ||
- Fixed a crash when old projects which used multiple asset libraries were not specifying `frameworkParams`. | ||
- This fix is required for users attempting to build [Friday Night Funkin'](https://github.com/ninjamuffin99/Funkin/) or derivatives. | ||
|
||
|
||
## [1.0.0] - 2021-09-15 | ||
The repository as it existed on 2020-09-15. | ||
### Added | ||
- All basic functionality. | ||
### Changed | ||
- Fixed support for Lime projects utilizing multiple asset libraries. | ||
### Known Issues | ||
- A crash may occur when old projects (which do not specify `frameworkParams.assetLibraryPaths`) are run in this version. |